2017-10-02 8 views
1

이제 Azure 활성 디렉토리 1에 하나의 응용 프로그램이 있고 Azure 활성 디렉토리 2에 웹 API가 있습니다. 내 목표는 AAD1과 AAD2의 사용자가 앱에 로그인 할 수 있도록 허용하는 것입니다.활성 디렉토리에서 권한을 추가하는 방법은 무엇입니까? (하늘색에 멀티 테넌트 애플리케이션 설정과 관련된 문제)

지금까지 필자는 App 및 Api를 멀티 테넌트로 설정하고 알려진 클라이언트 응용 프로그램으로 매니페스트에 서로 추가했습니다.

아직 완성하지 못한 것들이 있습니다. 사용자 정의 도메인을 다른 도메인에 추가하고 권한을 btw api 및 app에 추가하면이 두 가지 문제가 발생했습니다.

는 지금 내 오류 MSG는 : 인증 서버를 통해 액세스 권한을 부여하면서

오류가 발생했습니다 unauthorized_client AADSTS65005 : 잘못된> 자원. 클라이언트는 클라이언트의 응용 프로그램 등록에서 요청 된 권한에 나열되지 않은 자원에 대한 액세스를 요청했습니다.

필요한 권한 목록에서 api에서 액세스 권한을 부여하려고 시도했을 때 다른 디렉토리에있는 웹 앱을 보지 못했습니다. 어떻게해야합니까?

동일한 디렉토리에서 App과 Api를 모두 이동하면 다른 디렉토리의 사용자도 로그인 할 수 있습니까? 당신이 "필수 권한 목록"에 대한 옵션으로 입주 1에서 웹 API를 참조하기 위해서는

답변

1

, 당신은 당신이 이것을 할 수 있습니다 1.

거주자로 제공 웹 API에 대한 서비스 주체를 필요 여러 가지 방법이 있지만 가장 쉬운 방법은 로그인 URL을 생성하여 웹 API에 로그인하는 것입니다. 테넌트 1의 사용자를 사용하여 로그인하면 서비스 교장이 세입자에게 프로비저닝되고 선택할 수있는 옵션이됩니다.

https://login.microsoftonline.com/common/oauth2/authorize?client_id=<appid>&response_type=code&redirect_uri=<replyurl>&resource=<resource>&prompt=consent 

다른 옵션은 서비스 주체를 기반으로 만들 AAD PowerShell을 사용하여 웹 API 앱 ID가 될 수 있습니다

New-​Azure​AD​Service​Principal

New-AzureADServicePrincipal -AccountEnabled $true -AppId $MyApp.AppId -DisplayName $App -Tags {WindowsAzureActiveDirectoryIntegratedApp} 

당신은 성공적으로 서비스 주체를 넣어하면 위에서 설명한 오류 메시지가 사라져야합니다.

+0

안녕하세요 Shawn, 내 Api에 New Azure 광고 서비스 교장을 사용했으며 성공적으로 생성되었음을 보여줍니다. 여전히 Tenant1의 교장은 볼 수 없습니다. 문제가 Tenant1이고 Tenant2가 다른 구독을 사용하고 있다면 어떻게 생각합니까? – naturallogarithm

+0

여기서는 중요하지 않습니다. 로그인 방법을 통해 시도해 볼 수 있습니까? 사용자 계정으로 올바른 거주자로 로그인하고 있습니까? –

1

Shawn Tabrizi의 답변 외에도 알려진 클라이언트 애플리케이션으로 API를 지정할 수 있습니다. 당신의 앱의 매니페스트에 따라서

: 앱에 인증하려고하면

"knownClientApplications": [ 
    "your-api-client-id" 
] 

그런 다음, 동시에뿐만 아니라 API에 대한 동의를 할 수 있습니다.