要在Azure中運行應用程序,我需要在Azure AD中創建應用程序以及相應的服務主體。然後我的應用程序對這個App/Principal對進行身份驗證。要進行身份驗證,我可以在應用程序註冊中創建應用程序密鑰,或者我可以在服務主體中創建密碼(以及其他選項)。從實踐的角度來看,有什麼不同?使用AAD應用程序密鑰和服務主體密碼之間的身份驗證區別
例如,運行此代碼完全相同的(從外)$鍵是否是應用程序的關鍵或服務主體的密碼:
$key = ConvertTo-SecureString $authKeyOrPassword -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($appID, $key)
Add-AzureRmAccount -Credential $cred -TenantId $tenantID -ServicePrincipal
什麼時候應該對應用程序進行身份驗證,而當我應該使用服務負責人嗎?
謝謝!那麼下面的推論是否正確? 1)如果我想鎖定給定進程的權限,是否最好通過它自己的服務主體而不是通過應用程序密鑰進行身份驗證? 2)應用程序密鑰的主要目的是爲其他租戶中的服務主體提供一種方法來嚮應用程序進行身份驗證?如果是這樣,我認爲這將是一個誤用的應用程序密鑰,直接用於身份驗證(如我在上面的代碼示例)。如果不是,它的目的是什麼? – jschmitter
嗨,@jschmitter,爲您額外的問題,我有這方面的意見:1)我認爲這是針對不同的場景沒有權限。 2)如果你想使用的服務原則,你可以爲你的應用程序的關鍵或not.When您想您的應用程序配置爲客戶端應用程序訪問WebAPIs,你需要的應用程序鍵。 –
這個文件也可能是有用的you.https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-integrating-applications –