2017-09-04 98 views
0

我需要澄清的样品或参考链接如下项目:Azure的广告访问令牌澄清

  1. 如何启用访问令牌的自动续期?
  2. 如何获得活动访问令牌和过期时间?
  3. 是否有任何可能的方式从访问令牌再次获取广告用户名,密码和客户端ID?
  4. 如何验证访问令牌?

这一切都需要在c#中实现而不是在powershell中。

+0

试试你的自我跟随教程,并问你有冲突或错误。请按照此https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-scenarios – wthamira

回答

0

如何启用自动更新访问令牌?

在成功认证,天青AD返回两个令牌:一个JWT接入令牌和JWT刷新令牌。当所述接入令牌过期,客户机应用程序将接收指示用户需要再次认证错误。如果应用程序具有有效的刷新令牌,则可以使用该令牌来获取新的访问令牌,而不会提示用户再次登录。如果刷新令牌到期,应用程序将需要再次交互式验证用户身份。

如何获取活动的访问令牌和过期时间?

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

是否有任何可能的方式来从访问令牌再次获得广告的用户名,密码和客户端ID?

你可以得到解码访问令牌,找到upn要求存储用户主体的用户名; appid声明标识正在使用令牌访问资源的应用程序。请参考文档:Azure AD token reference。当然,您无法获取密码信息。

如何验证访问令牌?

JWT令牌已签名,但收到时未加密。它必须validate the signature来证明令牌的真实性并验证令牌中的一些声明以证明其有效性。由应用程序验证的声明因场景要求而异,但您的应用必须在每种情况下执行一些常见声明验证。例如,如果您正在开发单个租户应用,则需要验证issaud索赔。而且您还需要验证nbf以确保令牌未过期。详情请参阅Validating tokens

Here是如何手动验证Web API中的JWT访问令牌的代码示例。如果您在项目中使用OWIN组件,则使用UseWindowsAzureActiveDirectoryBearerAuthentication扩展验证令牌更为容易,代码示例here仅供参考。

+0

请注意,访问令牌应被视为不透明(并可在未来)。我们不建议您从访问令牌中提取声明。它只应该被资源消耗(不是客户端) –

+0

也可以在客户端库上进行令牌的续订(对于C#,如果要定位Azure AD V1(适用于Work /学校帐户和ADFS内部帐户),如果您想要针对工作/学校帐户和MSA(Microsoft个人帐户)的Azure AD V2,则可以使用MSAL.Net –

+0

对于C#客户端库,请参见[Azure Active Directory身份验证库](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-libraries) –