Microsoft Entra 權限
本文內容
當您註冊您的 Microsoft Entra 應用程式 時,您會將存取各種 API 的權限授與它。 隨著您的需求變更,您可能會想要調整這些權限。 本文會說明如何操作。
注意
Microsoft Entra 應用程式權限僅適用於下列案例:
為組織內嵌
使用主要使用者 驗證方法,對客戶進行內嵌
編輯您的 Microsoft Entra 應用程式的權限設定
您可以透過程式設計的方式變更權限,或在 Azure 入口網站中進行此動作。
在 Azure 入口網站中,您可以檢視您的應用程式,並且變更其權限。
登入 Azure 入口網站 。
在頁面的右上角選取您的帳戶,以選取您的 Microsoft Entra 租用戶。
選取 應用程式註冊 。 如果您看不到此選項,請進行搜尋。
在 [擁有的應用程式] 索引標籤中,選取您的應用程式。 應用程式隨即會在 [概觀] 索引標籤中開啟,您可以在此檢視 [應用程式識別碼] 。
選取 [檢視 API 權限] 索引標籤。
選取新增權限 。
若要新增權限,請遵循下列步驟 (請注意,GCC 應用程式的第一個步驟有所不同):
從 [Microsoft API] 索引標籤中,選取 [Power BI 服務] 。
注意
對於 GCC 應用程式,請選取 [我的組織使用的 API] 索引標籤,然後搜尋 Microsoft Power BI Government Community Cloud 或 fc4979e5-0aa5-429f-b13a-5d1365be5566 。
選取 [委派權限] ,然後新增或移除您需要的特定權限。
完成後,選取 [新增權限] 以儲存變更。
遵循下列步驟移除權限:
選取權限右邊的省略號 (...)。
選取 [移除權限] 。
在 [移除權限] 快顯視窗中,選取 [是,移除] 。
若要以程式設計方式變更 Microsoft Entra 應用程式的權限,您必須取得租用戶內現有的服務主體 (使用者)。 如需如何執行這項作業的資訊,請參閱 servicePrincipal 。
若要取得租用戶內的所有服務主體,請呼叫不包含 {ID}
的 Get servicePrincipal
API。
使用應用程式的 [應用程式識別碼] (appId
屬性),檢查服務主體。 (displayName
是選擇性的。)
Post https://graph.microsoft.com/v1.0/servicePrincipals HTTP/1.1
Authorization: Bearer ey..qw
Content-Type: application/json
{
"accountEnabled" : true,
"appId" : "{App_Client_ID}",
"displayName" : "{App_DisplayName}"
}
將下列其中一個值指派給 consentType
,將 Power BI 權限授與您的應用程式:
Post https://graph.microsoft.com/v1.0/OAuth2PermissionGrants HTTP/1.1
Authorization: Bearer ey..qw
Content-Type: application/json
{
"clientId":"{Service_Plan_ID}",
"consentType":"AllPrincipals",
"resourceId":"a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
"scope":"Dataset.ReadWrite.All Dashboard.Read.All Report.Read.All Group.Read Group.Read.All Content.Create Metadata.View_Any Dataset.Read.All Data.Alter_Any",
"expiryTime":"2018-03-29T14:35:32.4943409+03:00",
"startTime":"2017-03-29T14:35:32.4933413+03:00"
}
注意
如果您使用主要使用者 ,您必須將權限授與主要帳戶,以避免出現 Microsoft Entra ID 同意提示。
resourceId
c78a3685-1ce7-52cd-95f7-dc5aea8ec98e 是取決於租用戶,並非一體適用。 此值為 Microsoft Entra ID 中 [Power BI 服務] 應用程式的 objectId 。 若要從 Azure 入口網站取得此值,請瀏覽至 [企業應用程式] > [所有應用程式] ,然後搜尋「Power BI 服務」 。
將值指派給 consentType
,授與應用程式權限給 Microsoft Entra ID。
Post https://graph.microsoft.com/v1.0/OAuth2PermissionGrants HTTP/1.1
Authorization: Bearer ey..qw
Content-Type: application/json
{
"clientId":"{Service_Plan_ID}",
"consentType":"AllPrincipals",
"resourceId":"a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
"scope":"User.Read Directory.AccessAsUser.All",
"expiryTime":"2018-03-29T14:35:32.4943409+03:00",
"startTime":"2017-03-29T14:35:32.4933413+03:00"
}
您也可以使用 C# 來變更您的 Microsoft Entra 應用程式權限。 如需詳細資訊,請參閱 oAuth2PermissionGrant \(英文\) API。 如果您正在考慮自動化某些流程,則此方法可能很有用。
var graphClient = GetGraphClient();
currentState.createdApp = await graphClient.Applications
.Request()
.AddAsync(application);
System.Threading.Thread.Sleep(2000);
var passwordCredential = new PasswordCredential
{
DisplayName = "Client Secret Created in C#"
};
currentState.createdSecret = await graphClient.Applications[currentState.createdApp.Id]
.AddPassword(passwordCredential)
.Request()
.PostAsync();
var servicePrincipal = new ServicePrincipal
{
AppId = currentState.createdApp.AppId
};
currentState.createdServicePrincipal = await graphClient.ServicePrincipals
.Request()
.AddAsync(servicePrincipal);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
// Use oAuth2PermissionGrant to change permissions
var oAuth2PermissionGrant = await graphClient.Oauth2PermissionGrants["{id}"]
.Request()
.GetAsync();
相關內容