programing

Zure Active Directory - 허용된 토큰 수신자

abcjava 2023. 4. 26. 22:51
반응형

Zure Active Directory - 허용된 토큰 수신자

Azure에서 "허용된 토큰 청중"에 대한 문서를 찾고 있지만 없는 것 같습니다.내가 거기에 넣은 값은 토큰과 함께 반환된 리소스 ID였습니다.

이것은 무엇을 의미합니까?문서에 대한 링크는 매우 감사할 것입니다.

PS. 실제 페이지의 학습 링크에는 이에 대한 언급이 없으며, 스크린샷은 더 오래된 것으로 보이며 이 필드가 없습니다.

잘 부탁드립니다.

여기에 이미지 설명 입력

저도 그 서류 때문에 망설였어요.제가 백엔드 API 앱을 사용하는 Angular Front-end 앱으로 작업한 내용은 다음과 같습니다.

프론트 엔드 앱에서 사용자는 링크를 클릭하고 Azure Directory로 인증합니다.토큰은 브라우저에서 세션 중에 유지됩니다.

다음으로, 사용자는 API 앱과 상호 작용하기를 원합니다.
과 같습니다.

  • Azure에 있는 API 앱의 앱 서비스로 이동합니다.
  • 인증/권한 부여로 이동
  • 앱 서비스 인증 "사용" 설정
  • 인증 공급자에서 "Azure Active Directory"를 선택합니다.
  • "고급" 단추를 선택합니다.
  • 클라이언트 ID 필드에 API App의 Azure Active Directory App Registration에서 "애플리케이션 ID"를 입력합니다.당신은 이미 Azure Active Directory에 API 앱을 등록했어야 합니다.
  • 허용된 토큰 사용자 필드에 프론트엔드 앱의 Azure Active Directory 앱 등록에서 "애플리케이션 ID"를 입력합니다.프론트엔드 앱을 이미 Azure Active Directory에 등록했어야 합니다.

보안은 매우 중요합니다.문서가 얼마나 혼란스러운지 생각이 듭니다.오윈/카타나는 나가는 길에 있는 것처럼 보입니다.이 구성에 따라 필요한 항목이 없습니다.Owin이 사라졌다는 또 다른 징후는 Microsoft/System Identity Model과 관련된 엄청난 변화입니다. 이는 빌드, 식별, 수정, 야다야다가 불가능해 보입니다.저는 마이크로소프트가 "엔드포인트"를 만들어 무엇이 나와 있고 무엇이 들어가 있는지, 그리고 이 특정 단계를 수행하는 방법을 보여주기를 바랍니다.만약 당신의 앱이 이것을 할 수 있다면, 그것은 정말 깨끗합니다.

여기에 이미지 설명 입력

2020년으로 빠르게 이동하면 이제 이 매개 변수에 대한 설명이 있습니다.(2019년 추가)

https://learn.microsoft.com/en-us/azure/app-service/configure-authentication-provider-aad#-enable-azure-active-directory-in-your-app-service-app

허용된 토큰 수신자

클라우드 또는 서버 앱이며 웹 앱에서 인증 토큰을 허용하려면 여기에 웹 앱의 응용 프로그램 IDURI를 추가합니다.구성된 클라이언트 ID는 항상 암묵적으로 허용 대상으로 간주됩니다.

제 경험에 따르면, 이 필드(또는 값 중 하나)의 값은 서비스로 전송되는 토큰의 "청중" 필드에 있는 값과 일치해야 합니다(junas는 위 질문에 대한 코멘트만큼 언급했습니다).위에서 제안한 appidURI를 사용하기 위한 bwwmartens 제안은 작동할 것 같지만 Azure 포털의 현재 버전의 AAD 등록 블레이드에는 "AppIDURI" 값이 나열되지 않으며 더 이상 "설정 -> 속성"이 나타나지 않습니다(사이트가 계속 변경됨).

저의 경우, 앱 아이디를 입력하는 것만으로는 작동하지 않았습니다.여기서 필요한 가치를 찾는 가장 간단한 두 가지 방법은 다음과 같습니다.

  1. 서비스에 대한 AAD 등록으로 이동하여 "식별자 Uris" 필드의 매니페스트를 확인합니다.내 경험에 따르면 여기에 있는 값은 허용된 토큰 대상 목록에 입력한 값과 일치해야 합니다.
  2. 서비스로 보낼 JWT를 가져와 디코딩합니다(예: http://jwt.calebb.net/) 을 사용하여 "aud" 필드의 값을 확인합니다).허용된 토큰 청중 목록에 입력합니다.

오류: JWT 유효성 검사 실패: IDX10214:시청자 유효성 검사에 실패했습니다.대상:....는 허용됨을 나타냅니다.앱 서비스의 시청자 ARM 구성을 수정해야 합니다.

수정 방법:이를 위한 가장 간단한 방법은 https://resources.azure.com/ 을 통해 수행하는 것입니다.App Service 리소스 > config > auth 설정을 드릴다운하고 아래와 같이 값을 수정합니다.

"allowedAudiences":[
"https://<site>.azurewebsites.net"
  ]

OR

포털로 이동하여 인증의 고급 섹션을 클릭하고 웹 앱의 값으로 허용된 토큰 대상을 업데이트할 수 있습니다.현재 앱 서비스가 변경되면 자동으로 수행할 수 있지만 이 구성을 확인하는 것이 좋습니다.

현재 대부분의 사람들이 OAuth 2.0을 사용하고 있을 수 있으며, 이들에게 허용된 토큰 사용자는 앱 등록 ID 값으로 업데이트되어야 합니다.

Azure AD=> 앱 등록 => 웹 앱의 API => 값 노출을 업데이트할 수 있으며, 이는 사용자에게 도움이 될 것입니다.

값 00000002-0000-0000-c000-00000000은 Microsoft를 나타냅니다.권한 부여를 수행하려면 올바른 리소스에 대해 Grpah 리소스지만 토큰이 발급되어야 합니다.

이는 JWT 사양과 관련이 있습니다.

"aud"(청중) 클레임:

"감사"(청중) 클레임은 JWT가 대상으로 하는 수신자를 식별합니다.JWT를 처리하려는 각 주체는 독자 주장의 값으로 자신을 식별해야 합니다.클레임을 처리하는 주체가 클레임이 존재할 때 "감사" 클레임의 값과 자신을 식별하지 못할 경우 JWT는 거부되어야 합니다.일반적인 경우 "aud" 값은 대소문자를 구분하는 문자열의 배열이며, 각 문자열은 StringOr을 포함합니다.URI 값입니다.JWT에 한 명의 청중이 있는 특별한 경우, "aud" 값은 StringOr를 포함하는 대소문자를 구분하는 단일 문자열일 수 있습니다.URI 값입니다.시청자 가치의 해석은 일반적으로 응용 프로그램에 따라 다릅니다.이 청구는 선택 사항입니다.

대상은 액세스를 요청하는 응용프로그램/리소스를 나타냅니다.

액세스 토큰을 요청할 때 다음을 지정할 수 있습니다.

  • a resourceparameter:개변매: 이다들어예, 다을호면 access_token을 합니다.https://graph.microsoft.com/일 수 . client_id는 응용 프로그램의 client_id입니다.00000003-0000-0000-c000-000000000000.
    이경에는우,,https://graph.microsoft.com/는 앱 이며 앱입등식니 uri다자입니다.00000003-0000-0000-c000-000000000000앱 등록의 client_id입니다. 개를 할 수 .identifier_uri앱 등록을 만들 때.식별자 uris 및 클라이언트 ID는 고유하며 MS Graph API에 대한 액세스 토큰을 요청하는 데 사용할 수 있습니다.
  • a scope 변수:를 들어 : 변예들를다어음호을출면하려이 access_token을 합니다.https://graph.microsoft.com/.user.read 범위는 그서범위는래▁be가 될 것입니다.https://graph.microsoft.com/user.read.
    사용 권한에 토큰을 " " " " " " " " " " " " " " " " " 을 .{identifier_uri}/.default 이 에는 ㅠㅠㅠㅠㅠㅠㅠㅠㅠhttps://graph.microsoft.com/.default.

그러면 ID 공급자가 요청된 응용 프로그램에 대한 토큰을 발급합니다.aud클레임은 다음과 같습니다.

  • client_id지정한 경우resource=client_id매개 변수로
  • identifier_uri지정한 경우resource=identifier_uri또는scope={identifier_uri}/...매개 변수로

질문으로 돌아가서 앱 서비스 위에서 Oauth2를 활성화할 때 다음과 같은 매개 변수를 지정해야 합니다.

  • client_id그리고.client_secret대부분 인증 코드 흐름에 사용됩니다.
  • issuer이 클레임은 토큰을 발행하는 사람(= ID 제공자)을 식별했습니다.AAD의 경우, 다음과 같습니다.https://sts.windows.net/your-tenant-id또는https://sts.windows.net/your-tenant-name이렇게 하면 수신된 토큰이 원하는 ID 공급자에 의해 발급되었음을 확인할 수 있습니다.
    관례에 따라 발행인 클레임은 openid-configuration을 가져오는 방법도 정의합니다.{issuer}/.well-known/openid-configuration(설명서 참조).간단히 말하자면, 저는 다음과 같습니다.openid-configurationendpoint는 jwt 토큰의 유효성을 검사하는 방법에 대한 정보를 제공합니다.
  • Allowed audiences우리가 말한 것에 따르면, 허용된 청중은client_id또는identifier_uri(es)보호된 응용 프로그램의

언급URL : https://stackoverflow.com/questions/42640158/azure-active-directory-allowed-token-audiences

반응형