다음을 통해 공유


Active Directory Federation Services를 사용하여 SharePoint Server에서 OIDC 인증 설정(AD FS)

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

필수 구성 요소

OIDC(OpenID Connect) 인증을 사용하여 AD FS(Active Directory Federation Services)를 사용하여 SharePoint Server를 구성하는 경우 구성을 수행하려면 다음 리소스가 필요합니다.

  1. SharePoint Server 구독 버전 팜.
  2. 파일에서 내보낸 AD FS 서명 인증서의 공개 키를 사용하여 이미 만들어진 Windows Server 2016 이상의 AD FS입니다.cer.

이 문서에서는 AD FS OIDC 설정에 다음 예제 값을 사용합니다.

링크
SharePoint 사이트 URL https://spsites.contoso.local/
AD FS 사이트 URL https://adfs.contoso.local/adfs/
AD FS 인증 엔드포인트 https://adfs.contoso.local/adfs/oauth2/authorize
RegisteredIssuerName URL https://adfs.contoso.local/adfs/
AD FS SignoutURL https://adfs.contoso.local/adfs/oauth2/logout
ID 클레임 유형 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
Windows 사이트 모음 관리자 contoso\yvand
페더레이션된(AD FS) 사이트 모음 관리자의 Email 값 yvand@contoso.local

1단계: ID 공급자 설정

AD FS를 사용하여 OIDC를 설정하려면 다음 단계를 수행합니다.

  1. AD FS 관리에서 애플리케이션 그룹을 마우스 오른쪽 단추로 클릭하고 애플리케이션 그룹 추가를 선택합니다.

  2. 시작 페이지로 이동하여 이름 필드에 ADFSSSO를 입력하고 클라이언트 서버 애플리케이션에서 웹 애플리케이션 템플릿에 액세스하는 웹 브라우저를 선택합니다. 그런 후 다음을 선택합니다.

    애플리케이션 그룹 추가 마법사

  3. 네이티브 애플리케이션 페이지로 이동하여 클라이언트 식별자 값을 복사합니다. 나중에 SharePoint 구성 중에 매개 변수 값 DefaultClientIdentifier 으로 사용됩니다.

  4. 리디렉션 URL 필드에서 를 입력 https://spsites.contoso.local/ 하고 추가를 선택합니다. 그런 후 다음을 선택합니다.

    애플리케이션 그룹 추가 마법사 2

  5. 요약 페이지로 이동하여 다음을 선택합니다.

    애플리케이션 그룹 추가 마법사 3

  6. 완료 페이지로 이동하여 닫기를 선택합니다.

  7. AD FS에서 토큰 서명 인증서를 내보냅니다. 이 토큰 서명 인증서는 SharePoint 설정에서 사용됩니다. 다음 이미지는 AD FS에서 토큰 서명 인증서를 내보내는 방법을 보여 줍니다.

    AD FS 인증서 내보내기 1

    AD FS 인증서 내보내기 2

    AD FS 인증서 내보내기 3

    AD FS 인증서 내보내기 4

  8. 필요한 클레임 ID가 AD FS의 에 id_token 포함되어 있는지 확인합니다. 전자 메일을 예로 살펴보겠습니다.

    AD FS가 AD와 같은 특성 저장소에서 식별자 클레임을 읽는 규칙을 구성한 것으로 가정합니다. 다음 단계를 수행하여 이전에 AD FS에서 만든 이 특정 웹 애플리케이션에 대한 발급 변환 규칙을 만듭니다.

    1. 만든 웹 애플리케이션을 열고 문제 변환 규칙 탭으로 이동합니다.

      문제 변환 규칙

    2. 규칙 추가를 선택하고 옵션 목록에서 클레임으로 LDAP 특성 보내기를 선택합니다.

      문제 변환 규칙 추가

      변환 클레임 규칙 추가

    3. 클레임 규칙 이름을 AD로 지정하고 특성 저장소 드롭다운 메뉴에서 Active Directory를 선택합니다. 다음과 같이 드롭다운 상자를 사용하여 두 개의 매핑을 만듭니다.

      특성
      전자 메일 주소 전자 메일 주소
      Token-Groups - 도메인 이름으로 정규화 역할

      변환 클레임 규칙 추가 2

    4. 마침을 선택하여 규칙 마법사를 닫고 확인을 선택하여 웹 애플리케이션 속성을 닫습니다. 확인을 한 번 더 선택하여 규칙을 완료합니다.

SharePoint Server를 사용하여 OIDC를 설정하는 경우 만든 웹 애플리케이션의 AD FS 서버 쪽에서 nbf 클레임을 구성해야 합니다. 이 웹 애플리케이션에 nbf 클레임이 없는 경우 다음 단계를 수행하여 만듭니다.

  1. 만든 웹 애플리케이션을 열고 문제 변환 규칙 탭으로 이동합니다.

    문제 변환 규칙

  2. 규칙 추가를 선택한 다음 적용을 선택합니다. 변환 클레임 규칙 추가 마법사의 클레임 규칙템플릿 옵션에서 사용자 지정 규칙을 사용하여 클레임 보내기를 선택합니다.

    문제 변환 규칙 추가

    변환 클레임 규칙 추가 3

  3. 다음을 선택하고 사용자 지정 규칙 필드에 다음 문자열을 입력합니다.

    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"] => issue(Type = "nbf", Value = "0");

    변환 클레임 규칙 추가 4

  4. 완료를 선택합니다.

2단계: SharePoint 팜 속성 변경

이 단계에서는 SharePoint Server 버전에 따라 SharePoint Server 팜 속성을 수정해야 합니다.

참고

SharePoint Management Shell을 팜 관리자로 시작하여 다음 스크립트를 실행합니다. 다음 PowerShell 스크립트에 언급된 지침을 주의 깊게 읽어보세요. 특정 위치에 사용자 고유의 환경별 값을 입력해야 합니다.

  • SharePoint Server 구독 버전 버전 24H1에 대한 SharePoint 팜 속성을 구성하는 방법에 대한 자세한 내용은 SPSE 버전 24H1 이상 버전 구성을 참조하세요.
  • 24H1 이전의 SharePoint Server 구독 버전 버전에 대한 SharePoint 팜 속성을 구성하는 방법에 대한 자세한 내용은 버전 24H1 이전 SPSE 구성을 참조하세요.

SharePoint Server 구독 버전 버전 24H1 이상 버전 구성

SharePoint Server 구독 버전 버전 24H1(2024년 3월)부터 SharePoint 인증서 관리를 사용하여 nonce 쿠키 인증서를 관리하여 SharePoint Server 팜 속성을 구성할 수 있습니다. nonce 쿠키 인증서는 OIDC 인증 토큰이 안전한지 확인하기 위한 인프라의 일부입니다. 다음 스크립트를 실행하여 구성합니다.

# Set up farm properties to work with OIDC

# Create the Nonce certificate
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider' -Subject "CN=SharePoint Cookie Cert"

# Import certificate to Certificate Management
$certPath = <path to save the exported cert>
$certPassword = ConvertTo-SecureString -String <password> -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath $certPath -Password $certPassword
$nonceCert = Import-SPCertificate -Path $certPath -Password $certPassword -Store "EndEntity" -Exportable:$true

$farm = Get-SPFarm 
$farm.UpdateNonceCertificate($nonceCert,$true)

버전 24H1 이전의 SharePoint Server 구독 버전 구성

# Set up farm properties to work with OIDC
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider' -Subject "CN=SharePoint Cookie Cert"
$rsaCert = [System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($cert)
$fileName = $rsaCert.key.UniqueName

# If you have multiple SharePoint servers in the farm, you need to export the certificate by Export-PfxCertificate and import the certificate to all other SharePoint servers in the farm by Import-PfxCertificate. 

# After the certificate is successfully imported to SharePoint Server, we will need to grant access permission to the certificate's private key.

$path = "$env:ALLUSERSPROFILE\Microsoft\Crypto\RSA\MachineKeys\$fileName"
$permissions = Get-Acl -Path $path

# Replace the <web application pool account> with the real application pool account of your web application
$access_rule = New-Object System.Security.AccessControl.FileSystemAccessRule(<Web application pool account>, 'Read', 'None', 'None', 'Allow')
$permissions.AddAccessRule($access_rule)
Set-Acl -Path $path -AclObject $permissions

# Update farm properties
$farm = Get-SPFarm
$farm.Properties['SP-NonceCookieCertificateThumbprint']=$cert.Thumbprint
$farm.Properties['SP-NonceCookieHMACSecretKey']='seed'
$farm.Update()

3단계: ID 공급자를 신뢰하도록 SharePoint 구성

이 단계에서는 SharePoint에서 AD FS를 SPTrustedTokenIssuer OIDC 공급자로 신뢰해야 하는 구성을 저장하는 을 만듭니다. SharePoint 관리 셸을 팜 관리자로 시작하고 다음 스크립트를 실행하여 만듭니다.

참고

다음 PowerShell 스크립트에 언급된 지침을 주의 깊게 읽어보세요. 여러 위치에서 환경별 값을 입력해야 합니다.

# Define claim types
$email = New-SPClaimTypeMapping "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming

# Public key of the AD FS signing certificate
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
# Set the AD FS URL where users are redirected to authenticate
$authendpointurl = "https://adfs.contoso.local/adfs/oauth2/authorize"
$registeredissuernameurl = "https://adfs.contoso.local/adfs"
$signouturl = "https://adfs.contoso.local/adfs/oauth2/logout"

# Replace <Client Identifier> with the value you saved in step #3 of AD FS Setup section
$clientIdentifier = "<Your Client Identifier>"

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "Contoso.local" -Description "Contoso.local" -ImportTrustCertificate $signingCert -ClaimsMappings $email -IdentifierClaim $email.InputClaimType  -RegisteredIssuerName $registeredissuernameurl  -AuthorizationEndPointUri $authendpointurl -SignOutUrl $signouturl -DefaultClientIdentifier $clientIdentifier

New-SPTrustedIdentityTokenIssuer PowerShell cmdlet은 다음 매개 변수를 사용하여 OIDC를 지원하도록 확장됩니다.

매개 변수 설명
이름 새 토큰 발급자에게 이름을 지정합니다.
설명 새 토큰 발급자에게 설명을 제공합니다.
ImportTrustCertificate OIDC 식별자에서 유효성을 검사 id_token 하는 데 사용할 X509 인증서 목록을 가져옵니다. OIDC IDP가 둘 이상의 인증서를 사용하여 에 디지털 서명 id_token하는 경우 이러한 인증서를 가져오고 SharePoint는 이러한 인증서를 사용하여 생성된 디지털 서명을 일치시켜 유효성을 검사 id_token 합니다.
ClaimsMappings SPClaimTypeMapping 에서 SharePoint의 식별자로 간주될 클레임을 id_token 식별하는 데 사용되는 개체입니다.
IdentifierClaim 식별자 유형을 지정합니다.
RegisteredIssuerName 를 발급하는 발급자 식별자를 지정합니다 id_token. 의 유효성을 검사 id_token하는 데 사용됩니다.
AuthorizationEndPointUrl OIDC ID 공급자의 권한 부여 엔드포인트를 지정합니다.
SignoutUrl OIDC ID 공급자의 로그아웃 엔드포인트를 지정합니다.
DefaultClientIdentifier OID ID 공급자가 할당하는 SharePoint 서버의 를 지정 client_id 합니다. 의 aud 클레임 id_token에 대해 유효성이 검사됩니다.
ResponseTypesSupported 이 토큰 발급자에서 수락할 수 있는 IDP의 응답 유형을 지정합니다. 및 code id_token의 두 문자열을 수락할 수 있습니다id_token. 이 매개 변수가 제공되지 않으면 기본값으로 사용됩니다 code id_token .

중요

관련 인증서를 SharePoint 루트 기관 인증서 저장소에 추가해야 하며 이 작업을 수행할 수 있는 두 가지 옵션이 있습니다.

  • 인증 기관에서 AD FS 서명 인증서를 발급하는 경우(보안상의 이유로 모범 사례)

    발급자 인증서(및 모든 중간자)의 공개 키를 저장소에 추가해야 합니다. SharePoint 관리 셸을 시작하고 다음 스크립트를 실행하여 인증서를 추가합니다.

    $rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing issuer.cer")
    New-SPTrustedRootAuthority -Name "adfs.contoso.local signing root authority" -Certificate $rootCert
    
  • AD FS 서명 인증서가 자체 서명된 인증서인 경우(보안상의 이유로 권장되지 않음)

    AD FS 서명 인증서의 공개 키를 저장소에 추가해야 합니다. SharePoint 관리 셸을 시작하고 다음 스크립트를 실행하여 인증서를 추가합니다.

    $rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
    New-SPTrustedRootAuthority -Name "adfs.contoso.local signing certificate" -Certificate $rootCert
    

4단계: SharePoint 웹 애플리케이션 구성

이 단계에서는 이전 단계에서 만든 를 사용하여 SPTrustedIdentityTokenIssuer AD FS OIDC 인증을 사용하도록 SharePoint에서 웹 애플리케이션을 구성합니다.

중요

  • SharePoint 웹 애플리케이션의 기본 영역에는 Windows 인증 사용하도록 설정되어 있어야 합니다. 검색 크롤러에 필요합니다.
  • AD FS OIDC 페더레이션을 사용할 SharePoint URL은 HTTPS를 사용하여 구성해야 합니다.

다음을 통해 이 구성을 완료할 수 있습니다.

  • 새 웹 애플리케이션을 만들고 기본 영역에서 Windows 및 AD FS OIDC 인증을 모두 사용합니다. 새 웹 애플리케이션을 만들려면 다음을 수행합니다.

    1. SharePoint 관리 셸을 시작하고 다음 스크립트를 실행하여 새 SPAuthenticationProvider를 만듭니다.

      # This script creates a trusted authentication provider for OIDC    
      $sptrust = Get-SPTrustedIdentityTokenIssuer "contoso.local"
      $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      
    2. SharePoint Server에서 웹 애플리케이션 만들기에 따라 contoso.local에서 SharePoint - OIDC라는 HTTPS/SSL을 사용하도록 설정하는 새 웹 애플리케이션을 만듭니다.

    3. SharePoint 중앙 관리 사이트를 엽니다.

    4. 만든 웹 애플리케이션을 열고 리본에서 "인증 공급자"를 선택하고 "기본" 영역에 대한 링크를 클릭한 다음 contoso.local을 신뢰할 수 있는 ID 공급자로 선택합니다.

      인증 공급자 3

    5. 시스템 설정>대체 액세스 매핑> 대체액세스 매핑 컬렉션 구성으로 이동합니다.

    6. 새 웹 애플리케이션을 사용하여 디스플레이를 필터링하고 다음 정보가 표시되는지 확인합니다.

      대체 액세스 매핑 컬렉션-1

  • 기존 웹 애플리케이션을 확장하여 새 영역에서 AD FS OIDC 인증을 설정합니다. 기존 웹 애플리케이션을 확장하려면 다음을 수행합니다.

    1. SharePoint 관리 셸을 시작하고 PowerShell을 실행하여 웹 애플리케이션을 확장합니다.

      예제:

      # Get the trusted provider
      $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local"
      $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      # Get the web app
      $wa = Get-SPWebApplication http://spsites
      # Extend the web app to the "Intranet" zone using trusted provider auth and a SharePoint managed certificate called "SharePoint OIDC Site"
      New-SPWebApplicationExtension -Identity $wa -Name "spsites" -port 443 -HostHeader 'spsites.contoso.local'-AuthenticationProvider $ap -SecureSocketsLayer -UseServerNameIndication -Certificate 'SharePoint OIDC Site' -Zone 'Intranet' -URL 'https://spsites.contoso.local' 
      
    2. 시스템 설정>대체 액세스 매핑> 대체액세스 매핑 컬렉션 구성으로 이동합니다.

    3. 확장된 웹 애플리케이션을 사용하여 디스플레이를 필터링하고 다음 정보가 표시되는지 확인합니다.

      대체 액세스 매핑 컬렉션

5단계: 웹 애플리케이션이 SSL 인증서로 구성되었는지 확인

OpenID Connect 1.0 인증은 HTTPS 프로토콜에서만 작동할 수 있으므로 해당 웹 애플리케이션에서 인증서를 설정해야 합니다. 아직 수행하지 않은 경우 다음 단계를 수행하여 인증서를 설정합니다.

  • 사이트 인증서 생성:

    참고

    인증서를 이미 생성한 경우 이 단계를 건너뛸 수 있습니다.

    1. SharePoint PowerShell 콘솔을 엽니다.

    2. 다음 스크립트를 실행하여 자체 서명된 인증서를 생성하고 SharePoint 팜에 추가합니다.

      New-SPCertificate -FriendlyName "Contoso SharePoint (2021)" -KeySize 2048 -CommonName spsites.contoso.local -AlternativeNames extranet.contoso.local, onedrive.contoso.local -OrganizationalUnit "Contoso IT Department" -Organization "Contoso" -Locality "Redmond" -State "Washington" -Country "US" -Exportable -HashAlgorithm SHA256 -Path "\\server\fileshare\Contoso SharePoint 2021 Certificate Signing Request.txt"
      Move-SPCertificate -Identity "Contoso SharePoint (2021)" -NewStore EndEntity
      

      중요

      자체 서명된 인증서는 테스트 목적으로만 적합합니다. 프로덕션 환경에서는 인증 기관에서 발급한 인증서를 대신 사용하는 것이 좋습니다.

  • 인증서를 설정합니다.

    다음 PowerShell cmdlet을 사용하여 웹 애플리케이션에 인증서를 할당할 수 있습니다.

    Set-SPWebApplication -Identity https://spsites.contoso.local -Zone Default -SecureSocketsLayer -Certificate "Contoso SharePoint (2021)"
    

6단계: 사이트 모음 만들기

이 단계에서는 두 명의 관리자가 있는 팀 사이트 모음을 만듭니다. 하나는 Windows 관리자이고 다른 하나는 페더레이션된(AD FS) 관리자입니다.

  1. SharePoint 중앙 관리 사이트를 엽니다.

  2. 애플리케이션 관리>사이트 모음 만들기로 이동합니다.

  3. 제목, URL을 입력하고 템플릿 팀 사이트를 선택합니다.

  4. 기본 사이트 모음 관리자 섹션에서 책 아이콘을 선택하여 사람 선택 대화 상자를 엽니다.

  5. 사람 선택 대화 상자에서 Windows 관리자 계정(예: yvand)을 입력합니다.

  6. 조직을 선택하여 왼쪽의 목록을 필터링 합니다. 다음은 샘플 출력입니다.

    사람 3 선택

  7. 계정으로 이동하여 확인을 선택합니다.

  8. 보조 사이트 모음 관리자 섹션에서 책 아이콘을 선택하여 사람 선택 대화 상자를 엽니다.

  9. 사람 선택 대화 상자에서 AD FS 관리자 계정의 정확한 이메일 값(예yvand@contoso.local: )을 입력합니다.

  10. Contoso.local을 선택하여 왼쪽의 목록을 필터링합니다. 다음은 샘플 출력입니다.

    사람 4 선택

  11. 계정으로 이동하여 확인을 선택합니다.

  12. 확인을 선택하여 사이트 모음을 만듭니다.

사이트 모음이 만들어지면 Windows 또는 페더레이션(AD FS OIDC) 사이트 모음 관리자 계정을 사용하여 로그인할 수 있습니다.

7단계: 사람 선택기 설정

OIDC 인증에서 사람 선택기는 입력의 유효성을 검사하지 않으므로 맞춤법이 잘못되거나 사용자가 실수로 잘못된 클레임 유형을 선택할 수 있습니다. 사용자 지정 클레임 공급자를 사용하거나 SharePoint Server 구독 버전 포함된 새 UPA 백업 클레임 공급자를 사용하여 이 문제를 해결할 수 있습니다. UPA 지원 클레임 공급자를 구성하려면 최신 인증에 대한 향상된 사람 선택기를 참조하세요.