Microsoft Entra SAML 토큰 암호화 구성

참고 항목

토큰 암호화는 Microsoft Entra ID P1 또는 P2 기능입니다. Microsoft Entra 버전, 기능, 가격 책정에 대한 자세한 내용은 Microsoft Entra 가격 책정을 참조하세요.

SAML 토큰 암호화에서는 암호화된 SAML 어셜선을 지원되는 애플리케이션에서 이 어셜선 기능을 사용할 수 있습니다. 애플리케이션에 대해 구성된 경우 Microsoft Entra ID는 Microsoft Entra ID에 저장된 인증서에서 가져오는 공개 키를 사용하여 해당 애플리케이션에 대해 내보내는 SAML 어설션을 암호화합니다. 애플리케이션이 먼저 일치하는 프라이빗 키를 사용하여 토큰 암호를 해독해야만 로그인한 사용자의 인증 증명 정보로 사용할 수 있습니다.

Microsoft Entra ID와 애플리케이션 간의 SAML 어설션을 암호화하면 토큰 콘텐츠를 가로챌 수 없으며 개인 또는 기업 데이터가 손상되지 않도록 추가로 보장할 수 있습니다.

토큰 암호화 없이도 Microsoft Entra SAML 토큰은 네트워크에서 암호화되지 않은 상태로 전달되지 않습니다. Microsoft Entra ID는 토큰 요청/응답 교환이 암호화된 HTTPS/TLS 채널을 통해 수행되도록 요구하므로 IDP, 브라우저 및 애플리케이션 간의 통신이 암호화된 연결을 통해 수행됩니다. 추가 인증서 관리에 따른 오버헤드와 비교하면서 작업 상황에서 토큰 암호화를 사용할 때의 가치를 고려하세요.

토큰 암호화를 구성하려면 공개 키가 포함된 X.509 인증서 파일을 애플리케이션을 나타내는 Microsoft Entra 애플리케이션 개체에 업로드해야 합니다. X.509 인증서를 가져오려면 애플리케이션 자체에서 다운로드하거나, 애플리케이션 공급 기업에서 암호화 키를 제공하는 경우 또는 사용자가 애플리케이션에 프라이빗 키를 제공해야 하는 경우 애플리케이션 공급 기업에서 가져옵니다. 암호화 도구, 애플리케이션의 키 저장소에 업로드된 프라이빗 키 부분 및 Microsoft Entra ID에 업로드된 일치하는 공개 키 인증서를 사용하여 만들 수 있습니다.

Microsoft Entra ID는 AES-256을 사용하여 SAML 어설션 데이터를 암호화합니다.

필수 조건

SAML 토큰 암호화를 구성하려면 다음이 필요합니다.

  • Microsoft Entra 사용자 계정. 계정이 없다면 무료로 만들 수 있습니다.
  • 다음 역할 중 하나: 전역 관리자, 클라우드 애플리케이션 관리자, 애플리케이션 관리자 또는 서비스 주체의 소유자.

이 문서의 단계는 시작하는 포털에 따라 약간 다를 수 있습니다.

엔터프라이즈 애플리케이션 SAML 토큰 암호화 구성

이 섹션에서는 엔터프라이즈 애플리케이션의 SAML 토큰 암호화를 구성하는 방법을 설명합니다. 애플리케이션 갤러리 또는 비갤러리 앱에서 Microsoft Entra 관리 센터의 엔터프라이즈 애플리케이션 블레이드에서 설정한 애플리케이션입니다. 앱 등록 환경을 통해 등록된 애플리케이션의 경우 등록된 애플리케이션 SAML 토큰 암호화 구성 지침을 따릅니다.

엔터프라이즈 애플리케이션의 SAML 토큰 암호화를 구성하려면 다음 단계를 따릅니다.

  1. 애플리케이션에 구성된 프라이빗 키와 일치하는 공개 키 인증서를 가져옵니다.

    암호화에 사용할 비대칭 키 쌍을 만듭니다. 또는 애플리케이션이 암호화에 사용할 공개 키를 제공하는 경우 애플리케이션의 지침에 따라 X.509 인증서를 다운로드합니다.

    공개 키는 .cer 형식의 X.509 인증서 파일에 저장해야 합니다. 인증서 파일의 내용을 텍스트 편집기에서 복사하여 .cer 파일로 저장할 수 있습니다. 인증서 파일에는 프라이빗 키가 아닌 공개 키만 포함되어야 합니다.

    애플리케이션에서 인스턴스를 위해 사용자가 만든 키를 사용하면, 애플리케이션이 Microsoft Entra 테넌트의 토큰 암호를 해독하는 데 사용할 프라이빗 키를 설치하기 위해 애플리케이션에서 제공한 지침을 따릅니다.

  2. Microsoft Entra ID의 애플리케이션 구성에 인증서를 추가합니다.

Microsoft Entra 관리 센터에서 토큰 암호화 구성

Microsoft Entra 관리 센터 내의 애플리케이션 구성에 퍼블릭 인증서를 추가할 수 있습니다.

  1. 최소한 클라우드 애플리케이션 관리자Microsoft Entra 관리 센터에 로그인합니다.

  2. ID>애플리케이션>엔터프라이즈 애플리케이션>모든 애플리케이션으로 이동합니다.

  3. 검색 상자에서 기존 애플리케이션 이름을 입력한 다음, 검색 결과에서 애플리케이션을 선택합니다.

  4. 애플리케이션의 페이지에서 토큰 암호화를 선택합니다.

    Screenshot shows how to select the Token encryption option in the Microsoft Entra admin center.

    참고 항목

    토큰 암호화 옵션은 Microsoft Entra 관리 센터의 엔터프라이즈 애플리케이션 블레이드, 애플리케이션 갤러리 또는 비갤러리 앱에서 설정한 SAML 애플리케이션에만 사용할 수 있습니다. 다른 애플리케이션의 경우 이 메뉴 옵션을 사용할 수 없습니다.

  5. 토큰 암호화 페이지에서 인증서 가져오기를 선택하여 공용 X.509 인증서를 포함하는 .cer 파일을 가져옵니다.

    Screenshot shows how to import a certificate file using Microsoft Entra admin center.

  6. 인증서를 가져오고, 애플리케이션 쪽에서 사용할 수 있게 프라이빗 키가 구성되면 지문 상태 옆에 있는 ...를 선택하여 암호화를 활성화한 다음, 드롭다운 메뉴의 옵션에서 토큰 암호화 활성화를 선택합니다.

  7. 를 선택하여 토큰 암호화 인증서 활성화를 확인합니다.

  8. 애플리케이션용으로 내보낸 SAML 어설션이 암호화되었는지 확인합니다.

Microsoft Entra 관리 센터의 토큰 암호화를 비활성화하려면

  1. Microsoft Entra 관리 센터에서 ID>애플리케이션>엔터프라이즈 애플리케이션>모든 엔터프라이즈로 이동한 다음, SAML 토큰 암호화가 사용하도록 설정된 애플리케이션을 선택합니다.

  2. 애플리케이션의 페이지에서 토큰 암호화를 선택하고 인증서를 찾은 후 ... 옵션을 선택하여 드롭다운 메뉴를 표시합니다.

  3. 토큰 암호화 비활성화를 선택합니다.

등록된 애플리케이션 SAML 토큰 암호화 구성

이 섹션에서는 등록된 애플리케이션의 SAML 토큰 암호화를 구성하는 방법을 설명합니다. Microsoft Entra 관리 센터의 앱 등록 블레이드에서 설정된 애플리케이션입니다. 엔터프라이즈 애플리케이션의 경우 엔터프라이즈 애플리케이션 SAML 토큰 암호화 구성 지침을 따릅니다.

암호화 인증서는 encrypt 사용 태그가 있는 Microsoft Entra ID의 애플리케이션 개체에 저장됩니다. 암호화 인증서를 여러 개 구성할 수 있습니다. 토큰 암호화용으로 활성화된 인증서는 tokenEncryptionKeyID 특성으로 식별됩니다.

Microsoft Graph API 또는 PowerShell을 사용하여 토큰 암호화를 구성하려면 애플리케이션의 개체 ID가 있어야 합니다. 이 값을 프로그래밍 방식으로 찾거나 Microsoft Entra 관리 센터의 애플리케이션 속성 페이지로 이동한 후 개체 ID 값을 확인하여 찾을 수 있습니다.

Graph 또는 PowerShell을 사용하거나 keyId에 사용할 GUID를 생성해야 합니다.

애플리케이션 등록의 토큰 암호화를 구성하려면 다음 단계를 수행합니다.

  1. 최소한 클라우드 애플리케이션 관리자Microsoft Entra 관리 센터에 로그인합니다.

  2. ID>애플리케이션>앱 등록>모든 애플리케이션으로 이동합니다.

  3. 검색 상자에서 기존 애플리케이션 이름을 입력한 다음, 검색 결과에서 애플리케이션을 선택합니다.

  4. 애플리케이션의 페이지에서 매니페스트를 선택하여 애플리케이션 매니페스트를 편집합니다.

    다음 예제에서는 2개의 암호화 인증서로 구성되어 있으며 두 번째 인증서가 tokenEnryptionKeyId를 사용하여 활성 암호화 인증서로 선택된 애플리케이션 매니페스트를 보여 줍니다.

    { 
      "id": "3cca40e2-367e-45a5-8440-ed94edd6cc35",
      "accessTokenAcceptedVersion": null,
      "allowPublicClient": false,
      "appId": "cb2df8fb-63c4-4c35-bba5-3d659dd81bf1",
      "appRoles": [],
      "oauth2AllowUrlPathMatching": false,
      "createdDateTime": "2017-12-15T02:10:56Z",
      "groupMembershipClaims": "SecurityGroup",
      "informationalUrls": { 
         "termsOfService": null, 
         "support": null, 
         "privacy": null, 
         "marketing": null 
      },
      "identifierUris": [ 
        "https://testapp"
      ],
      "keyCredentials": [ 
        { 
          "customKeyIdentifier": "Tog/O1Hv1LtdsbPU5nPphbMduD=", 
          "endDate": "2039-12-31T23:59:59Z", 
          "keyId": "8be4cb65-59d9-404a-a6f5-3d3fb4030351", 
          "startDate": "2018-10-25T21:42:18Z", 
          "type": "AsymmetricX509Cert", 
          "usage": "Encrypt", 
          "value": <Base64EncodedKeyFile> 
          "displayName": "CN=SAMLEncryptTest" 
        }, 
        {
          "customKeyIdentifier": "U5nPphbMduDmr3c9Q3p0msqp6eEI=",
          "endDate": "2039-12-31T23:59:59Z", 
          "keyId": "6b9c6e80-d251-43f3-9910-9f1f0be2e851",
          "startDate": "2018-10-25T21:42:18Z", 
          "type": "AsymmetricX509Cert", 
          "usage": "Encrypt", 
          "value": <Base64EncodedKeyFile> 
          "displayName": "CN=SAMLEncryptTest2" 
        } 
      ], 
      "knownClientApplications": [], 
      "logoUrl": null, 
      "logoutUrl": null, 
      "name": "Test SAML Application", 
      "oauth2AllowIdTokenImplicitFlow": true, 
      "oauth2AllowImplicitFlow": false, 
      "oauth2Permissions": [], 
      "oauth2RequirePostResponse": false, 
      "orgRestrictions": [], 
      "parentalControlSettings": { 
         "countriesBlockedForMinors": [], 
         "legalAgeGroupRule": "Allow" 
        }, 
      "passwordCredentials": [], 
      "preAuthorizedApplications": [], 
      "publisherDomain": null, 
      "replyUrlsWithType": [], 
      "requiredResourceAccess": [], 
      "samlMetadataUrl": null, 
      "signInUrl": "https://127.0.0.1:444/applications/default.aspx?metadata=customappsso|ISV9.1|primary|z" 
      "signInAudience": "AzureADMyOrg",
      "tags": [], 
      "tokenEncryptionKeyId": "6b9c6e80-d251-43f3-9910-9f1f0be2e851" 
    }  
    

다음 단계