2016-02-11 53 views
2

我已經使用Azure AD獲得了web api 2項目。這非常適合使用[Authorize]屬性,但我無法讓它與角色一起工作。我已加入下列到應用程序清單:用於Web Api的Azure AD應用程序角色

"appRoles": [ 
{ 
    "allowedMemberTypes": [ 
    "Application" 
    ], 
    "description": "Access to example controller", 
    "displayName": "Example", 
    "id": "76d4bbb5-24c1-45ad-9446-cc360d7bd012", 
    "isEnabled": "true", 
    "origin": "Application", 
    "value": "example" 
} 

]

和該屬性我的API控制器:[授權(角色= 「例如」)]。如果我刪除這個屬性和調用我的API這個要求被列入ClaimsPrincipal.Current:

{http://schemas.microsoft.com/ws/2008/06/identity/claims/role: example} 

但這不足以讓我的應用程序時,角色頭部被用來進行身份驗證。任何幫助,將不勝感激。

回答

0

事實證明,令牌是SAML令牌,而不是JWT。所以爲了得到這個工作,我只需要在我的TokenValidationParameters中設置它

TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters() 
       { 
        // we inject our own multitenant validation logic 
        ValidateIssuer = false, 
        // map the claimsPrincipal's roles to the roles claim 
        RoleClaimType = "http://schemas.microsoft.com/ws/2008/06/identity/claims/role", 

       } 
+0

這個web api是否爲多租戶啓用? –

+0

如何爲啓用多租戶訪問的Web api分配角色。從不同的Azure AD目錄中,您無法看到Web api能夠爲其分配角色 –

+0

實際上我並不確定,那不是我所做的。我相信如果你創建一個新的問題,有人可以爲你解答。 –

相關問題