2017-03-09 6 views
2

다른 Azure 계정의 사용자가 사용할 수있는 단일 "기본 응용 프로그램"을 설정할 수 있습니까?/디렉터리를 통해 Office 365 Sharepoint Online에서 데이터를 가져올 수 있습니까?Azure Active Directory (AD) 사용자를 Office 365 Sharepoint Online API에 대한 커넥터 인 공유 기본 응용 프로그램에 로그인하는 방법

"웹 응용 프로그램"을 사용하여이 기능을 사용할 수 있습니다.이 기능을 설정 한 Azure 포털에서는 "멀티 테넌트"옵션을 "예"로 설정할 수 있습니다.이 메모는 다음을 지원합니다 :

외부 조직의 사용자에게 님이 자신의 조직 디렉토리에있는 데이터에 대한 액세스 권한을 부여 할 수 있는지 여부를 지정합니다. 이 컨트롤은 액세스 권한 부여에만 영향을줍니다. 이미 부여 된 액세스는 에 영향을주지 않습니다.

그리고 일부 초기 테스트에서는 이것이 실제로 작동 함을 나타냅니다. 그러나이 앱에 포함해야하는의 Oauth 비밀을 사용하여 의미하고 여기에 노트 : (응용 프로그램 비밀 관련)

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-code

주 :

.... client_secrets 은 장치에 안정적으로 저장할 수 없으므로 기본 응용 프로그램에서 사용하면 안됩니다. 서버 측에 안전하게 client_secret를 안전하게 저장할 수있는 기능이있는 웹 응용 프로그램 및 웹 API에 필요합니다. 여기 네이티브 앱의

, 워드 프로세서 :

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-devhowto-multi-tenant-overview

주 : 기본으로

네이티브 클라이언트 등록 는 멀티 테넌트 (multi-tenant). 네이티브 클라이언트 응용 프로그램을 만들기 위해 어떤 조치를 취할 필요가 없습니다 등록 다중 사용자.

: 우리는이 테스트 그러나 때의 OAuth 흐름 계정에서 동일하지 푸른 AD 네이티브 응용 프로그램은 우리가 인증 한 후 다음 얻을 설치 어디에 - 그들은 우리가 원하는 방식으로 작동한다 제안

AADSTS70001 : 식별자 'XXXXXXXXXXXXXXXXXXXXXX'와 응용 프로그램이 그래서이 작동하지 않는 나타납니다

디렉토리 YYYYYYYYYYYYYYYYYYYY에서 찾을 수 없습니다. 현재이 작업을 수행하는 유일한 방법은 웹 응용 프로그램을 작성하고 클라이언트 ID와 암호를 원시 응용 프로그램에 임베드하는 것입니다.

멀티 테넌트 네이티브 앱 또는 내가 잘못하고 있거나 시도 할 수있는 아이디어에 대한 의견이있는 사람이 있습니까?

UPDATE 내가 잘못 여기에 두 가지가 있었다 실현 : 당신은 실제로 멀티 테넌트 (multi-tenant) 확인하기 위해 'availableToOtherTenants'값을 업데이트 푸른에서 "매니페스트"버튼을 클릭 원시 JSON을 편집 할 수 있습니다 * . * OAuth 플로우에서 scope = user_impersonation이 없습니다.

이제 다른 조직의 사용자/테넌트가 인증 할 수있는 기본 앱을 만들 수있는 것 같습니다.

AADSTS65005을 : 잘못된 자원을

업데이트 2 OK 그래서 우리의 응용 프로그램은 현재 일부 사용자를 위해 작동하지만 적어도 하나는 점점 밝혀졌습니다. 클라이언트는 클라이언트의 응용 프로그램 등록에서 요청 된 권한에 나열되지 않은 자원에 대한 액세스를 요청했습니다. 고객 앱 ID : AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA. 요청의 리소스 값 : https://XXX.YYYYYY.com 리소스 앱 ID : ZZZZZZZZZZZ. 응용 프로그램 등록 유효 자원의 목록 : 00000002-0000-0000-c000-000000000000, 00000003-0000-0ff1-ce00-000000000000은 \ 연구 \ nTrace ID는 :. KKKKKKKKKKKKKKKKK는 \ 연구 nCorrelation ID : \ CCCCCCCCCCCCCCCCCCC

그럴 수 없어 다른 사용자가 아닌 다른 사용자가 아닌 다른 사용자가 아닌 다른 사용자가 아닌 다른 사용자가 아닌 다른 사용자가 아닌 다른 사용자가 아닌 다른 사용자가 아닌 다른 사용자가 아닌 다른 사용자가 아닌 이유를 확인하십시오.

답변

0

개발자가 개발 한 멀티 테넌트 웹 API에 액세스하는 기본 앱을 개발하는 경우 knownClientApplications 속성을 가진 웹 앱 매니페스트의 매니페스트에 기본 앱의 clientId을 추가하도록 설정할 수 있습니다. 따라서 다른 테넌트 사용자가 멀티 테넌트 웹 API에 액세스 할 때 기본 애플리케이션을 세입자에게 등록합니다. 이는 우리가 할 수있는

active-directory-dotnet-webapi-multitenant-windows-store

+0

우리는 네이티브 응용 프로그램을 만들려고/커넥터 :

는 푸른 AD를 사용하여 보호되는 멀티 테넌트 (multi-tenant) 웹 API를 호출하여 Windows 스토어 응용 프로그램을 설명하는 아래의 코드 샘플을 참조하십시오 누구든지 자신의 Sharepoint 365 데이터에 연결할 수 있습니다 (사용자가 OAuth 앱을 직접 설정하지 않아도 됨). 위의 업데이트를 참조하십시오. 그러나 이것이 올바른 접근이라고 생각한다면 관심이 있습니다. – chrisb

+0

혼란을 드려 죄송합니다. [Azure AD V2.0 끝점] (https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-compare)을 사용하고있는 것으로 보입니다 ('scope '대신'resource '). 다음은 저에게 맞는 요청입니다. https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id= {clientId} & redirect_uri = {redirectUri} & prompt = login'. 사용중인 정확한 요청은 무엇입니까? –

+0

안녕하세요 - V2.0 엔드 포인트를 사용하고 있지 않습니다. 입력 한 인증 URL은 상태 매개 변수와 프롬프트 = 동의가 있지만 Google과 매우 유사합니다. scope = user_impersonation이 어떤 영향을 미치는지 알고 있습니까? 내 테스트에서 나는 그것이 차이를 만드는 것을 알지 못했다. – chrisb