我正在MVC中开发应用程序,我想使用Azure active directory验证我的用户。
为了实现这一点,我在Azure active directory中使用应用程序URL创建了应用程序,并为应用程序分配了权限。
我还将我的应用程序配置为使用Azure AD身份验证。现在,当我尝试访问bootstrapContext.Token时,它总是为空。
我正在使用下面的方法来访问bootstrapContext。
var bootstrapContext = ClaimsPrincipal.Current.Identities.First().BootstrapContext as System.IdentityModel.Tokens.BootstrapContext;
string userAccessToken = bootstrapContext.Token;我对此进行了搜索,发现我必须更新我的web.config。所以我把它更新如下
<system.identityModel>
<identityConfiguration saveBootstrapContext="true">
<system.identityModel>我的主要目标是为authContext.AcquireToken方法使用UserAssertion。而UserAssertion需要bootstrapContext.Token。
根据MvdD的建议,我也尝试了下面的东西
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = metadataUri,
TokenValidationParameters = new TokenValidationParameters
{
SaveSigninToken = true
}
});但是现在,我得到了下面的错误
AADSTS50027: Invalid JWT token. AADSTS50027: Invalid JWT token. Token format not valid.
Trace ID: 0d052707-9aaf-4037-b7c9-4c4aa7cfcc72
Correlation ID: 9a00573b-cfe9-4665-ab81-c0a03eace9d8
Timestamp: 2016-02-08 05:18:01Z有人能帮我吗?
发布于 2016-01-04 14:10:43
从你的问题中并不清楚你使用的是哪种协议或什么库。
如果您使用的是Katana中间件,则应该在适当的AuthenticationOptions类中设置SaveSigninToken属性。对于WS-联合协议,它看起来像这样: app.UseWsFederationAuthentication(
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = metadataUri,
TokenValidationParameters = new TokenValidationParameters
{
SaveSigninToken = true
}
}
);如果使用的是System.IdentityModel,则需要设置IdentityConfiguration对象的SaveBootstrapContext属性。
https://stackoverflow.com/questions/34554009
复制相似问题