Azure广告访问令牌说明

时间:2017-09-04 07:04:29

标签: azure azure-active-directory

我需要澄清以下项目的样本或参考链接:

  1. 如何启用访问令牌的自动续订?
  2. 如何获取有效访问令牌和到期时间?
  3. 是否有任何可能的方法从访问令牌中再次获取广告用户名,密码和客户端ID?
  4. 如何验证访问令牌?
  5. 这一切都需要在c#中实现而不是在PowerShell中实现。

1 个答案:

答案 0 :(得分:0)

  
    

如何启用访问令牌的自动续订?

  

成功进行身份验证后,Azure AD将返回两个令牌:JWT访问令牌和JWT刷新令牌。当访问令牌过期时,客户端应用程序将收到一条错误消息,指示用户需要再次进行身份验证。如果应用程序具有有效的刷新令牌,则可以使用它来获取新的访问令牌,而不会提示用户再次登录。如果刷新令牌过期,则应用程序将需要再次以交互方式对用户进行身份验证。

  
    

如何获得有效的访问令牌和到期时间?

  

有关如何对用户进行身份验证并获取Azure广告应用的Azure AD访问令牌,可以参考Authentication Scenarios for Azure AD。Azure Active Directory身份验证库(ADAL)使客户端应用程序开发人员能够轻松地将用户身份验证为云端或本地Active Directory(AD),并获取访问令牌以保护API调用。 ADAL可在各种平台上使用。您可以在this document中找到代码示例和常见方案。

  
    

是否有任何方法可以从访问令牌中再次获取广告用户名,密码和客户端ID?

  

您可以解密访问令牌,找到存储用户主体用户名的union :: Ord a => MySet a -> MySet a -> MySet a声明; upn声明标识正在使用令牌访问资源的应用程序。请参阅文档:Azure AD token reference。当然,您无法获取密码信息。

  
    

如何验证访问令牌?

  

JWT令牌已签名,但收到后未加密。它必须validate the signature来证明令牌的真实性,并验证令牌中的一些声明以证明其有效性。应用验证的声明会根据方案要求而有所不同,但您的应用必须在每个方案中执行一些常见的声明验证。例如,如果您需要验证appidiss声明正在开发一个单一的租户应用程序。您还需要验证aud以确保令牌未过期。有关详细信息,请参阅Validating tokens

Here是有关如何在Web API中手动验证JWT访问令牌的代码示例。如果您在项目中使用OWIN组件,则使用nbf扩展名更加轻松验证令牌,代码示例here仅供您参考。