2017-11-16 4 views
0

msal.js를 사용하여 사용자가 AAD 계정으로 로그인 할 수 있도록하고 있습니다. 대상 세입자의 계좌를 사용하여 https://apps.dev.microsoft.com/에 신청서를 작성했습니다. 이 작업을 수행하면 세입자도 응용 프로그램을 만들 수 있으며 msal.js가 작동한다는 인상을 받았습니다. 그러나 loginRedirect()이 호출되면/common/endpoint에서 끝나며 모든 종류의 조직 및 개인 계정을 사용하여 로그인 할 수 있습니다. Azure AD V2/msal.js는 개인 계정을 제한합니까?

나는과 같이 권한을 지정하여 올바른 로그인 URL로 리디렉션 할 수 있었다 :

new Msal.UserAgentApplication({client_id}, 'https://login.microsoftonline.com/{tenant_id}/',() => {}); 

그러나, 이것은 여전히 ​​해당 조직의 계정을 사용하여 로그인 제한하지 않습니다. 사실 개인 계정으로 로그인 할 수도 있습니다.

제가

I 사용자가 MSA 또는 AAD를 이용하여 로그인하는 경우 결정하기 위해 디코딩 id_tokeniss 속성의 GUID 부분을 사용할 수있는 Is there a way to find whether authentication followed MSA or Azure AD in MSAL.jshttps://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-tokens로부터 판독. 그러나이 값은 항상 MSA 또는 다른 계정을 사용하여 로그인해도 https://sts.windows.net/{tenant_id}/과 같은 값을 반환합니다.

내 질문은 동일한 임차인의 사용자 계정에만 로그인을 적용하는 방법이며, 내가 할 수 없다면 적어도 MSA를 사용하여 로그인했는지 여부를 확인하는 값을 얻는 방법은 무엇입니까? 같은 임차인의 계좌입니까?

답변

1

당신은 AAD은 계정 만 허용하도록 권한에 organizations 대신 common을 지정할 수 있습니다

https://login.microsoftonline.com/organizations 

만 마이크로 소프트 계정을 원한다면, 당신은 consumers를 사용할 수 있습니다.

모두 허용하려면 common을 사용하십시오. 새 V2 포털에서 응용 프로그램을 만들 때

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols#endpoints

는 응용 프로그램은 기본적으로 멀티 테넌트 (multi-tenant) 될 것입니다, 당신은 당신의 디렉토리에 발견 할 수는 없을 것이다.

단일 입주자 앱을 원하면 v1을 사용하십시오.

+0

조직을 사용하는 경우 로그인 한 사용자가 특정 거주자인지 확인하는 방법이 있습니까? – codewisp

+0

토큰에 세입자 ID 인 'tid'클레임이 있어야합니다. – juunas

+0

감사합니다. 나는 tid와 iss가 올바른 값을 반환한다고 믿는다 - 로그인에 사용한 MS 계정이 게스트로 디렉토리에 추가되었다는 것을 깨닫지 못하여 내 AAD를 사용하여 로그인 한 것과 같은 가치를 얻고있다. 계정. – codewisp