![](/img/trans.png)
[英]Add role to already created application using Azure AD Graph API in C#
[英]Azure AD Application - Require Role Assignment + Add a role assignment for an Application?
我有一個MVC Web應用程序(WebAPI + Angular)部署到Azure作為Web應用程序(而不是API應用程序),設置為使用設置 - >身份驗證/授權 - > AAD - > Express進行保護。 這創建了一個與Web App同名的AD應用程序,並且作為普通的Web用戶(在目錄中,使用OAuth),它按預期工作。
但是我也有外部自動化需要直接調用WebAPI控制器,因此我需要以編程方式獲取Bearer令牌以傳遞這些請求。
當“需要訪問APP的用戶分配”==否時,這一切都正常。 但這還不夠,因為目錄中的每個人都不應該訪問此應用程序。
翻轉該開關會導致錯誤:
應用程序“AppId”未分配給應用程序“AppId”的角色。
正在使用的代碼:
var aadLoginUri = "http://login.microsoftonline.com/{0}";
var tenantId = "[xxx].onmicrosoft.com";
var authority = String.Format(CultureInfo.InvariantCulture, aadLoginUri, tenantId);
var clientId = ConfigurationManager.AppSettings["ClientId"];
var clientSecret = ConfigurationManager.AppSettings["ClientSecret"];
var authContext = new AuthenticationContext(authority);
ClientCredential clientCredential = new ClientCredential(clientId, clientSecret);
AuthenticationResult authResult = authContext.AcquireToken(clientId, clientCredential);
如何為應用程序添加角色分配?
(而不是用戶)
我嘗試使用“其他應用程序的權限”部分,但無法將應用程序添加到自身。 為了查看這是否可以解決另一個應用程序的問題,我繼續創建一個,並能夠添加應用程序並將委托權限設置為“訪問[應用程序名稱]”。 但與以前一樣,這僅適用於訪問應用程序不需要用戶分配的情況。 之后AcquireToken()
拋出相同的異常。
看起來這個問題可以通過將我們的API與Angular應用程序分離來解決 ,將API作為API應用程序(帶有網關)托管,但目前這不是一個選項。 此外, 本文還說這個新的Auth功能“ 替換了大多數應用程序的App Service網關 ”, 這篇博文在11月宣布該功能說“ 我們建議網絡和移動應用程序使用此功能而不是App Service網關 ”,所以我想知道如果這還沒有進入UI並且可能通過應用程序清單(嘗試,失敗),graph / service-mgmt api,powershell等添加應用程序角色分配。
關鍵是在清單中定義正確的appRoles(使用正確的allowedMemberType)。
在Azure門戶中,配置以下內容:
在需要訪問的資源中,打開清單 (“App Registrations”刀片)。 在appRoles數組中,添加兩個角色:
保存清單。
接下來,在需要訪問資源的客戶端應用程序中:
要配置用戶權限 :
在“屬性”部分中,保留“需要用戶分配?” 復選框已啟用 這將僅限制對已配置用戶的訪問。
現在,您可以作為用戶和應用程序訪問資源。
如何為應用程序添加角色分配?
2)在Manifest中添加角色內容,如下所示。 可以將用戶分配給應用程序作為用戶角色, 組,應用程序也可以作為角色分配給應用程序。
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"description": "Admins can manage roles and perform all actions.",
"displayName": "Global Admin",
"id": "7c93906c-71fa-4e5b-b1da-21b073d298fd",
"isEnabled": true,
"value": "Admin"
}
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.