토큰 수명 정책 구성(미리 보기)

다음 단계에서는 토큰 수명에 대한 새 규칙을 적용하는 일반적인 정책 시나리오를 구현합니다. Microsoft ID 플랫폼에서 발급된 액세스, SAML 또는 ID 토큰의 수명을 지정할 수 있습니다. 이는 조직의 모든 앱이나 특정 앱 또는 주체에 대해 설정할 수 있습니다. 다중 조직(다중 테넌트 애플리케이션)에 대해 설정할 수도 있습니다. 스크립트가 1시간 이상 실행되도록 토큰 수명을 늘릴 수 있습니다. Microsoft Graph PowerShell SDK와 같은 많은 Microsoft 라이브러리는 필요에 따라 토큰 수명을 연장하므로 액세스 토큰 정책을 변경할 필요가 없습니다. 자세한 내용은 구성 가능한 토큰 수명을 참조하세요.

필수 조건

시작하려면 최신 Microsoft Graph PowerShell ADK를 다운로드합니다.

정책을 만들고 앱에 할당

다음 단계에서는 사용자가 웹앱에서 덜 자주 인증하도록 요구하는 정책을 만듭니다. 웹앱에 대한 액세스/ID 토큰의 수명을 4시간으로 설정하는 정책을 앱에 할당합니다.

Install-Module Microsoft.Graph

Connect-MgGraph -Scopes  "Policy.ReadWrite.ApplicationConfiguration","Policy.Read.All","Application.ReadWrite.All"

# Create a token lifetime policy
$params = @{
  Definition = @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"4:00:00"}}') 
    DisplayName = "WebPolicyScenario"
  IsOrganizationDefault = $false
}
$tokenLifetimePolicyId=(New-MgPolicyTokenLifetimePolicy -BodyParameter $params).Id

# Display the policy
Get-MgPolicyTokenLifetimePolicy -TokenLifetimePolicyId $tokenLifetimePolicyId

# Assign the token lifetime policy to an app
$params = @{
  "@odata.id" = "https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/$tokenLifetimePolicyId"
}

$applicationObjectId="aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"

New-MgApplicationTokenLifetimePolicyByRef -ApplicationId $applicationObjectId -BodyParameter $params

# List the token lifetime policy on the app
Get-MgApplicationTokenLifetimePolicy -ApplicationId $applicationObjectId

# Remove the policy from the app
Remove-MgApplicationTokenLifetimePolicyByRef -ApplicationId $applicationObjectId -TokenLifetimePolicyId $tokenLifetimePolicyId

# Delete the policy
Remove-MgPolicyTokenLifetimePolicy -TokenLifetimePolicyId $tokenLifetimePolicyId

정책을 만들고 서비스 주체에 할당

다음 단계에서는 사용자가 웹앱에서 덜 자주 인증하도록 요구하는 정책을 만듭니다. 웹앱에 대한 액세스/ID 토큰의 수명을 8시간으로 설정하는 정책을 서비스 주체에 할당합니다.

  1. 토큰 수명 정책을 만듭니다.

    POST https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies
    Content-Type: application/json
    {
        "definition": [
            "{\"TokenLifetimePolicy\":{\"Version\":1,\"AccessTokenLifetime\":\"8:00:00\"}}"
        ],
        "displayName": "Contoso token lifetime policy",
        "isOrganizationDefault": false
    }
    
  2. 서비스 주체에게 정책을 할당합니다.

    POST https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444/tokenLifetimePolicies/$ref
    Content-Type: application/json
    {
      "@odata.id":"https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
    }
    
  3. 서비스 주체에 대한 정책을 나열합니다.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444/tokenLifetimePolicies
    
  4. 서비스 주체에서 정책을 제거합니다.

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444/tokenLifetimePolicies/00aa00aa-bb11-cc22-dd33-44ee44ee44ee/$ref
    

테넌트에서 기존 정책 보기

조직에서 만든 모든 정책을 확인하려면 Get-MgPolicyTokenLifetimePolicy cmdlet을 실행합니다. 위에 나열된 기본값과 다른 정의된 속성 값이 있는 결과는 사용 중지 범위에 포함됩니다.

  1. 조직에서 만들어진 모든 정책을 보려면 Get-MgPolicyTokenLifetimePolicy를 실행합니다.

    Get-MgPolicyTokenLifetimePolicy
    
  2. 정책 ID로 List appliesTo를 실행하여 사용자가 식별한 특정 정책에 어떤 앱이 연결되었는지 확인합니다.

    GET https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/4d2f137b-e8a9-46da-a5c3-cc85b2b840a4/appliesTo
    

다음 단계