0

Pyure 클라이언트 응용 프로그램에서 Azure AD로부터 토큰을 얻으려고합니다. 사용자가 사용자 이름과 비밀번호만으로 원활하게 인증되기를 바랍니다 (client_id/secret가 앱에 임베드됩니다).관리자가 응용 프로그램 사용에 동의하지 않았습니다. - Azure AD

https://login.microsoftonline.com/{tenant_id}/oauth2/token 

:

The user or administrator has not consented to use the application - Send an interactive authorization request for this user and resource

나는에 HTTP 게시물을 보내고 :이 게시물에 따라 내 응용 프로그램을 등록하고 모든 권한을 부여하고 새로운 포털에서 "권한을 부여"버튼을 누르면

headers = { 
    "Content-Type": "application/x-www-form-urlencoded" 
} 

body = "resource={0}&grant_type=password&username={1}&password={2}&client_id={3}&client_secret={4}&scope=openid".format(app_id_uri,user,password,client_id,client_secret) 
내가 아무리 내가 무엇을하려고이 오류 과거 얻을 수없는 것

:

다음과 같은 데이터를3210
b'{"error":"invalid_grant","error_description":"AADSTS65001: The user or administrator has not consented to use the application with ID \'078c1175-e384-4ac7-9116-efbebda7ccc2\'. Send an interactive authorization request for this user and resource. 

다시 말하지만, 내 목표 :

사용자는 다른 사용자/통과 아무것도 입력하지 않습니다. 앱이 user/pass/client_id/client_secret을 전송하고 토큰을받습니다.

+0

그래프 탐색기로 oauth2PermissionGrants를 확인할 수 있습니까? 예 : https://graphexplorer.cloudapp.net/Home/Index/DemoCompany?UrlRequest=GET&text=https%3A%2F%2Fgraph.windows.net%2Fgraphdir1.onmicrosoft.com%2Foauth2PermissionGrants. 앱의 서비스 보안 주체에게 리소스에 대한 적절한 액세스 권한이 부여되었는지 확인합니다. – juunas

+0

그래서 내가 여기에서 무엇을보고 있는지 확신 할 수는 없지만 "https://graph.windows.net/{my_dir}/oauth2PermissionGrants"를 입력하면 3 개의 서비스 주체가있는 "값"배열이 나타납니다 그것의 각 클라이언트 ID를 가지고 아무도 내 애플 리케이션의 client_id와 일치하지 않습니다. 추측이 범인이 될 수 있습니까? 난 아직도 그것을 부여하는 방법을 모르겠다면 – Progger

+0

클라이언트 ID는 실제로 개체 ID입니다 service principal의 끝점에서 먼저 서비스 주체를 찾으십시오. – juunas

답변

2

은 당신의 코멘트에 따르면

I 받고있어 메시지는 대화 형 요청을 할 수라고하지만 나는이없이 웹 브라우저와 I와 파이썬 응용 프로그램이기 때문에 피하기 위해 노력하고있어 정확히 무엇인가 복잡성을 피하려고합니다.

나는 Azure AD와 통합되는 데몬 응용 프로그램 또는 응용 프로그램 전용 응용 프로그램을 만들고 싶습니다. 일반적인 소개는 https://graph.microsoft.io/en-us/docs/authorization/app_only을 참조하십시오.

또한 ADAL for Python을 사용하여이 기능을 쉽게 구현할 수 있습니다. 또한 빠른 시작을 위해 client_credentials_sample.py을 참조 할 수 있습니다.

+0

이렇게하면 Graph에서 사용자의 정보를 가져올 수있는 토큰을 즉시 얻을 수 있습니다. 유일한 문제는 Graph에 대해 사용자의 자격 증명을 검증하는 방법을 파악할 수 없다는 것입니다. 이것이 가능한가? 이상적으로, 나는 client_id/secret 대신에 사용자의 creds를 사용하여 토큰을 얻고 싶지만 가능한지 확실하지 않습니다. – Progger

+0

** 대화 형 요청 **을 원하지 않으면이 기능을 구현하기 위해 약간의 추가 논리가 필요합니다. 그래프 api를 활용하여 자신의 인증서와 사용자 정보를 대조 할 수 있습니다. E.G https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/user_get –

+0

안녕하세요, @progger, 업데이트가 있습니까? 문제를 해결 했습니까? –

0

임차인의 응용 프로그램 사용을 승인하려면 관리자로 로그인해야합니다.

+0

이 모든 것은 관리자 계정을 사용하여 완료되었으므로 불행히도 도움이되지 않았습니다. – Progger

관련 문제