繁体   English   中英

MSAL (Java) Rest API 身份验证(授权:不记名令牌)

[英]MSAL (Java) Rest API Authentication ( Authorization : Bearer Token )

我想针对 Azure AD B2C 保护 Java Rest API。

我知道调用者正在使用 Authorization 标头调用服务,其值类似于:Bearer xxx-token

那是 ID 还是访问令牌?

服务应该采取哪些步骤来确保这是一个有效的令牌? 使用 MSAL4J 的 Java 代码将不胜感激。

MSAL4J 用于获取令牌以便客户端可以访问受保护的资源,而不是用于验证 API 中的令牌。

您的 API 应该在授权标头中接收访问令牌。 本文解释了访问令牌中可能包含哪些声明以及如何验证它们。

Microsoft 目前不提供用于此验证的 Java 库,但有许多第三方开源库提供此功能。 例如,您可以使用jjwt

您是否看过这个调用受保护 Web api 的MSAL4J B2C 示例

这里的样品中,其中它包括接入令牌,从当用户已登录,并将它附加到报头的承载令牌。 然后中间件库,例如 Java 的Spring Security ,将验证令牌。

private String callB2CApi(String accessToken){
   RestTemplate restTemplate = new RestTemplate();

   HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);

        headers.set("Authorization", "Bearer " + accessToken);

    HttpEntity<String> entity = new HttpEntity<>(null, headers);

    String result = restTemplate.exchange(authHelper.configuration.api, HttpMethod.GET,
                entity, String.class).getBody();

     return new Date() + result;
}

以下是有关使用 MSAL4J创建 Web 应用程序的更多信息,该应用程序登录用户然后调用受保护的 Web api。 更多用于调用受保护 Web api 的代码示例

这是b2c 令牌类型概述 idToken 包含有关用户的声明,访问令牌为您的 Web api 提供范围权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM