2016-04-26 191 views
1

我有一個需要讀取和寫入Azure AD的後端服務。通過使用租戶信息,客戶端ID和密鑰進行身份驗證(這些值來自Authentication Scenarios for Azure AD | Basics of Registering an Application in Azure AD),我能夠使用圖形API進行讀寫。Azure AD Graph API訪問,不使用客戶端ID和密鑰

使用租戶信息,客戶端ID和密鑰進行身份驗證意味着最終用戶需要通過手動指定這些值來註冊其租戶,並且我試圖避免用戶需要指定這些值的註冊手動步驟。

我也看過了多租戶應用程序管理員/用戶同意書及其相關示例Integrating applications with azure active directory。但是,管理員同意的問題是它使目錄中的所有用戶都可以訪問該目錄。

是否有任何其他方式可以提供某種類型的註冊鏈接,讓全局管理員用戶進行身份驗證並同意允許某些訪問或刷新令牌可以持久保留供後端用戶使用,終端服務?

回答

0

我有相反的問題(請參閱How to use Azure AD Graph API access for service principals?),但可以回答你的問題。守護程序應用程序可以作爲單租戶或多租戶運行,並使用用戶/密碼身份驗證,因此可以限制爲該用戶的權限/角色。我已經通過同時使用同一個應用程序的客戶端ID /祕密和用戶/密碼測試了這一點 - 您只需爲用戶/密碼的應用程序添加所需的權限(這似乎不適用於SP的)。

就我而言,我使用adal4j,但我敢肯定,你能適應它根據需要,例如:

final ExecutorService service = Executors.newFixedThreadPool(1); 
final AuthenticationContext context = new AuthenticationContext(authority, true, service); 
final Future<AuthenticationResult> future = context.acquireToken("https://graph.windows.net", clientID, userName, decryptedPassword, null); 
final AuthenticationResult result = future.get(); 

... 
相關問題