RSA 공개 키를 사용하여 SharePoint Server에서 OIDC 인증 설정

적용 대상:no-img-132013 no-img-162016 no-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

OIDC는 JWT(JSON 웹 토큰)를 사용하여 사용자의 ID를 확인하고 보호된 리소스에 대한 액세스 권한을 부여하는 인증 프로토콜입니다. JWT는 대칭 키(발급자와 소비자 간에 공유됨) 또는 비대칭 키(퍼블릭/프라이빗 키 쌍)를 사용하여 디지털 서명됩니다.

SharePoint Server는 현재 공개 키 및 기타 메타데이터를 포함하는 인증서인 x5c 키를 사용하여 OIDC 인증 흐름을 지원합니다. 그러나 일부 OIDC 공급자는 x5c 키를 사용하지 않고 RSA 모듈러스 및 RSA 공용 지수로 직접 표현되는 RSA 공용 키를 대신 사용할 수 있습니다. 이러한 공급자를 지원하기 위해 SharePoint Server는 JWT에서 RSA 공개 키를 구문 분석하고 유효성을 검사하는 기능을 추가했습니다.

이 문서에서는 RSA 공개 키를 사용하여 SharePoint Server에서 OIDC 인증을 설정하는 데 도움이 되는 버전 24H2의 새로운 개선 사항을 설명합니다.

RSA 공개 키를 사용하는 OIDC 구성 개요

  1. 여기에 설명된 단계를 수행하여 전역 관리자 자격 증명을 사용하여 Microsoft Entra ID OIDC를 설정합니다.
  2. SharePoint Server 팜의 버전에 따라 SharePoint Server 팜 속성을 수정합니다. 자세한 내용은 SharePoint 팜 속성 변경을 참조하세요.
  3. 이 문서에 설명된 단계를 사용하여 RSA 공개 키를 사용하여 만들어 SPTrustedIdentityTokenIssuer ID 공급자를 신뢰하도록 SharePoint를 구성합니다.
  4. 이전 단계에서 만든 를 사용하여 SPTrustedIdentityTokenIssuer sharePoint에서 Microsoft Entra OIDC와 페더레이션되도록 웹 애플리케이션을 구성합니다. 자세한 내용은 새 웹 애플리케이션 만들기를 참조하세요.
  5. 웹 애플리케이션이 SSL 인증서로 구성되어 있는지 확인합니다. 웹 애플리케이션을 구성하려면 인증서를 설정하는 단계를 수행 합니다.
  6. Windows 관리자와 페더레이션된(Microsoft Entra ID) 관리자로 팀 사이트 모음을 만듭니다. 자세한 내용은 사이트 모음 만들기를 참조하세요.
  7. 사용자 지정 클레임 공급자 또는 SharePoint Server 구독 버전 포함된 새 UPA 백업 클레임 공급자를 사용하여 사람 선택기를 설정합니다. 사람 선택 설정을 참조하세요.

3단계: RSA 공개 키를 사용하여 ID 공급자를 신뢰하도록 SharePoint 구성

RSA 공개 키의 경우 SharePoint가 OIDC 공급자로 신뢰해야 하는 구성을 저장하기 위해 을 만들거나 설정합니다 SPTrustedTokenIssuer . 수동으로 또는 메타데이터 엔드포인트를 사용하여 ID 공급자를 신뢰하도록 SharePoint를 구성할 수 있습니다.

메타데이터 엔드포인트를 사용하여 RSA 공개 키로 SharePoint OIDC 구성

관리자는 RSA 공개 키에 메타데이터 엔드포인트를 사용할 때 x5c 키에 사용되는 것과 동일한 PowerShell 명령을 따를 수 있습니다. SharePoint는 메타데이터 엔드포인트 응답에서 사용되는 키 종류를 파악하고 적절하게 만듭니다 SPTrustedIdentityTokenIssuer . 자세한 내용은 예제에 대한 메타데이터 엔드포인트를 사용하여 Microsoft Entra ID 신뢰하도록 SharePoint 구성을 참조하세요.

RSA 공개 키를 사용하여 수동으로 SharePoint OIDC 구성

RSA 공개 키에 대해 를 수동으로 만들거나 설정할 SPTrustedIdentityTokenIssuer 때 RSA 공개 키 모듈러스 및 지수를 정의하기 위해 또는 Set-SPTrustedIdentityTokenIssuer cmdlet을 실행하는 New-SPTrustedIdentityTokenIssuer 동안 새 -PublicKey 매개 변수를 지정해야 합니다.

New-SPTrustedIdentityTokenIssuer

매개 변수를 사용하여 다음 PowerShell cmdlet을 -PublicKey 실행할 수 있습니다.

New-SPTrustedIdentityTokenIssuer -Name "RSA-Manual" -Description "RSA Manually Created" -PublicKey $publicKeyXML -ClaimsMappings $emailClaimMap -IdentifierClaim $emailClaimMap.InputClaimType -DefaultClientIdentifier $clientIdentifier -RegisteredIssuerName $registeredissuernameurl -AuthorizationEndPointUri $authendpointurl -SignOutUrl $signouturl -Scope "openid profile" 

PowerShell cmdlet은 New-SPTrustedIdentityTokenIssuer 다음 매개 변수를 사용합니다.

매개 변수 설명
이름 새 토큰 발급자에게 이름을 지정합니다.
설명 새 토큰 발급자에게 설명을 제공합니다.
PublicKey 값이 RSA 공개 키 모듈러스 및 지수를 정의하는 XML 문자열이어야 한다고 지정합니다.
값의 $publicKeyXML 예:

<RSAKeyValue><Modulus>modulus</Modulus><Exponent>exponent</Exponent></RSAKeyValue>

ClaimsMappings SPClaimTypeMapping 에서 SharePoint의 식별자로 간주되는 클레임을 id_token 식별하는 데 사용되는 개체입니다.
IdentifierClaim 식별자 유형을 지정합니다.
DefaultClientIdentifier OIDC ID 공급자가 할당하는 SharePoint 서버의 를 지정 client_id 합니다. 의 aud 클레임에 대해 유효성이 검사됩니다 id_token.
RegisteredIssuerName 를 발급하는 발급자 식별자를 지정합니다 id_token. 의 유효성을 검사 id_token하는 데 사용됩니다.
AuthorizationEndPointUrl OIDC ID 공급자의 권한 부여 엔드포인트를 지정합니다.
SignoutUrl OIDC ID 공급자의 로그아웃 엔드포인트를 지정합니다.

x509 인증서에서 올바른 $publicKeyXML 값을 추출하려면 다음 PowerShell 명령을 실행할 수 있습니다.

$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 

$cert.Import("c:\certs\YourSigningCertificateHere.cer") 

$publicKeyXml = $cert.PublicKey.Key.ToXmlString($false) 

Set-SPTrustedIdentityTokenIssuer

cmdlet은 Set-SPTrustedIdentityTokenIssuer RSA 공개 키에 대한 새 -PublicKey 매개 변수를 지원하고 사용하는 것과 동일한 <RSAKeyValue><Modulus>modulus</Modulus><Exponent>exponent</Exponent></RSAKeyValue> XML 문자열을 New-SPTrustedIdentityTokenIssuer 사용합니다. 예:

Set-SPTrustedIdentityTokenIssuer -Identity "RSA-Manual" -PublicKey $publicKeyXml -IsOpenIDConnect 

OIDC 구성 개선 사항

버전 24H2를 사용하면 관리자는 ID 공급자를 신뢰하도록 SharePoint Server를 구성할 때 다음과 같은 개선 사항을 기대할 수 있습니다.

OIDC에서 여러 클라이언트 식별자를 구성할 수 있습니다.

이제 OIDC SPTrustedIdentityTokenIssuer에서 -ScopedClientIdentifier 스위치를 사용하여 여러 클라이언트 식별자를 구성할 수 있습니다. 다음 명령을 실행합니다.

Set-SPTrustedIdentityTokenIssuer -Identity <name> -ScopedClientIdentifier Dictionary<Uri,string> -IsOpenIDConnect 

Set-SPTrustedIdentityTokenIssuer ClaimsMappings 편집 기능 사용

이전 SharePoint Server 릴리스에서 를 만들 SPTrustedIdentityTokenIssuer때 IdP 토큰에서 SharePoint 발급 토큰으로 클레임을 매핑하는 데 사용되는 클레임 매핑 목록을 제공해야 합니다. 만든 후에 SPTrustedIdentityTokenIssuer 는 기존 클레임 매핑만 제거하거나 제거한 클레임 매핑을 다시 추가할 수 있습니다. 이 매핑은 제거한 것과 동일합니다. 그러나 원래 목록에 없는 새 클레임 매핑을 추가하거나 기존 클레임 매핑을 변경할 수 없습니다. 

버전 24H2 빌드의 새 업데이트를 통해 사용자는 클레임 매핑 목록을 변경할 수 있도록 에 새 매개 변수 Set-SPTrustedIdentityTokenIssuer 를 추가할 수 있습니다. 이 새로운 다음 매개 변수를 사용하면 토큰 발급자의 클레임 매핑 목록을 수정할 수도 있습니다.

새 매개 변수: -ClaimsMappings <SPClaimMappingPipeBind[]>

리디렉션 URL에서 와일드카드 문자로 작업할 수 없는 OIDC IDP 지원

Azure Active Directory B2C와 같은 일부 OIDC IdP는 리디렉션 URL에서 와일드카드 문자로 작업할 수 없습니다. 이렇게 하면 SharePoint가 인증 후에 요청되는 원래 리소스로 다시 리디렉션할 수 없습니다. 이 릴리스에서는 SharePoint가 리디렉션할 URL을 알 수 있도록 리디렉션 URL을 유지하기 위해 응답 헤더에 상태 속성을 추가했습니다. 

다음 PowerShell cmdlet을 사용하여 만든 tokenissuer에서 사용하도록 설정할 수 있습니다.

Set-SPTrustedIdentityTokenIssuer -Identity <name> -UseStateToRedirect:$True -IsOpenIDConnect

타이머 작업별 인증서 새로 고침

매일 구성된 OIDC 메타데이터 엔드포인트에서 최신 구성 설정을 자동으로 가져오고 그에 따라 OIDC 신뢰할 수 있는 토큰 발급자를 업데이트하는 새 타이머 작업(RefreshMetadataFeed)이 만들어집니다. 여기에는 토큰 암호화 및 서명, 토큰 발급자, 권한 부여 엔드포인트 및 SignoutUrl에 사용되는 인증서가 포함됩니다. 타이머 작업 일정을 변경하여 새로 고침 빈도를 변경할 수 있습니다. 예를 들어 PowerShell을 사용하여 타이머 작업 일정을 "매주 토요일 5:00"으로 변경할 수 있습니다.

Get-SPTimerJob refreshmetadafeed | Set-SPTimerJob -Schedule "weekly at sat 5:00" 

이 타이머 작업은 메타데이터 엔드포인트를 사용하여 OIDC 신뢰할 수 있는 토큰 발급자를 설정할 때 사용하도록 설정됩니다. 이 업데이트를 적용하기 전에 OIDC 신뢰할 수 있는 토큰 발급자 설정이 있는 경우 이 토큰 발급자에서 타이머 작업을 사용하도록 설정할 수 있도록 이 토큰 발급자를 다시 설정해야 합니다. PowerShell을 사용하여 토큰 발급자를 다시 설정할 수 있습니다.

Set-SPTrustedIdentityTokenIssuer -Identity <OIDCtokenissuer> -MetadataEndPoint <URL>