ค้นหาเว็บไซต์

แปลงผู้ใช้ภายนอกเป็นผู้ใช้ภายในใน Microsoft Entra


Microsoft Entra สนับสนุนการสนทนาของผู้ใช้ภายนอกในไดเร็กทอรีของคุณกับผู้ใช้ภายในในขณะที่ยังคงรักษา ID ออบเจ็กต์ สิทธิ์ และการเป็นสมาชิกกลุ่มไว้เหมือนเดิม การดำเนินการนี้จะลบความจำเป็นก่อนหน้านี้ในการลบผู้ใช้ภายนอก สร้างผู้ใช้ใหม่เป็นผู้ใช้ภายใน และกำหนดค่าสิทธิ์และการเป็นสมาชิกใหม่

ในบล็อกนี้ ฉันจะแสดงวิธีแปลงผู้ใช้ภายนอกให้เป็นผู้ใช้ภายในโดยใช้เว็บพอร์ทัลและ Microsoft Graph PowerShell

เหตุใดจึงแปลงผู้ใช้ภายนอกเป็นผู้ใช้ภายใน

สถานการณ์ทั่วไปบางประการในการแปลงผู้ใช้ภายนอกในไดเรกทอรีของคุณเป็นผู้ใช้ภายใน ได้แก่:

  • เพื่อรองรับการได้มาซึ่งธุรกิจใหม่ซึ่งอาจมีการจัดตั้งความสัมพันธ์แบบ B2B ไว้ล่วงหน้าแล้ว
  • เพื่อรองรับการจ้างงานภายในของที่ปรึกษาภายนอกที่มีอยู่
  • เพื่อรองรับการรวมสององค์กรเนื่องจากการได้มาหรือสถานการณ์การแยกผู้เช่าแบบเดิม

โดยพื้นฐานแล้ว คุณไม่ควรสร้างผู้ใช้ภายนอกในไดเรกทอรีของคุณโดยเจตนาเพื่อรองรับสถานการณ์เหล่านี้ การแปลงเป็นฟังก์ชันผู้ใช้ภายในช่วยลดความพยายามด้านการดูแลระบบและทางเทคนิคในการแปลงผู้ใช้ภายนอกที่มีอยู่ ซึ่งช่วยลดผลกระทบต่อผู้ใช้ปลายทาง

วิธีแปลงผู้ใช้ภายนอกเป็นผู้ใช้ภายใน

ทำตามขั้นตอนด้านล่างเพื่อแปลงผู้ใช้ภายนอก (หรือแขก) เป็นผู้ใช้ภายในในไดเร็กทอรีของคุณโดยใช้เว็บพอร์ทัล Microsoft Entra

1. เข้าสู่ระบบ entra.microsoft.com

2. ขยาย ข้อมูลประจำตัว จากนั้นเลือก ผู้ใช้ทั้งหมด > ผู้ใช้ทั้งหมด > ผู้ใช้ภายนอกของคุณ

4. บนแท็บ ภาพรวม เลือก แปลงเป็นผู้ใช้ภายใน

5. หน้าต่างใหม่จะปรากฏขึ้นทางด้านขวาของหน้าจอ คุณจะถูกขอให้ป้อน ชื่อผู้ใช้หลัก และสร้าง รหัสผ่าน

6. เมื่อคุณพร้อม คลิก แปลง คุณสมบัติผู้ใช้ของคุณจะถูกเปลี่ยนเป็น สมาชิก ซึ่งบ่งชี้ว่าขณะนี้ผู้ใช้อยู่ภายใน

แปลงผู้ใช้ภายนอกเป็นผู้ใช้ภายในด้วย PowerShell

ผลลัพธ์เดียวกันนี้สามารถทำได้โดยทางโปรแกรมโดยใช้ Microsoft Graph PowerShell ใช้ตัวอย่าง PowerShell ด้านล่างเพื่อแปลงผู้ใช้ Entra ID ภายนอกเป็นผู้ใช้ภายใน

$body = @{
        userPrincipalName = "NEW UPN HERE"
        passwordProfile =  @{
          password = "PASSWORD HERE"
          forceChangePasswordNextSignIn = "false"
        }
}

Invoke-MgGraphRequest -Method POST `
-Uri "Beta/users/ID OF EXTERNAL USER HERE/convertExternalToInternalMemberUser" `
-Body $body `
-ContentType "application/json"

ฉันได้ขยายความเพิ่มเติมเล็กน้อยและสร้างฟังก์ชันที่เป็นประโยชน์สำหรับการแปลงผู้ใช้ภายนอกเป็นผู้ใช้ภายในได้อย่างง่ายดาย

function Convert-MgExternalUser {

<#
  .AUTHOR
    Daniel Bradley
    ourcloudnetwork.co.uk

  .DESCRIPTION
    Convert external users in Microsoft Entra ID to internal users

  .EXAMPLE
    Convert-MgExternalUser -ExternalUser "externaluser#EXT#@contoso.com" -AccountName "New external user account name" -password "new password" -DefaultDomain
#>


  [CmdletBinding()]
    param(
        [Parameter(mandatory=$true)]
        [string]$ExternalUser,
        [string[]]$AccountName,
        [string[]]$password,
        [string[]]$domain,
        [switch]$DefaultDomain
    )

    #Grab default domain
    If ($DefaultDomain.IsPresent){
        $Domain = ((Invoke-MgGraphRequest -Method GET -Uri "beta/domains" -OutputType PSObject | Select -Expand Value) | Where {$_.isDefault -eq "True"}).id
    }

    #Check the external user and grab ID
    $ExternalUser -match '^.*(?=(\#EXT#))' | Out-Null
    $Normalised = $Matches[0]
    $UserCheck = Invoke-MgGraphRequest -Method GET -Uri "/beta/Users?`$filter=startsWith(UserPrincipalName, '$Normalised') and userType eq 'Guest'" -OutputType PSObject | Select -Expand Value -ErrorAction Stop
    IF ($UserCheck -eq $null){
        Write-Output "Unable to find external user, please try again."
        Return
    }

    #Create request body
    $body = @{
        userPrincipalName = "$AccountName@$Domain"
        passwordProfile =  @{
          password = "$password"
          forceChangePasswordNextSignIn = "false"
        }
    }

    #Convert external user to internal
    Invoke-MgGraphRequest -Method POST -Uri "Beta/users/$($UserCheck.id)/convertExternalToInternalMemberUser" -Body $body -ContentType "application/json"

}

ทำความเข้าใจผลกระทบของการเปลี่ยนใจเลื่อมใสผู้ใช้

จากการสังเกตครั้งแรก ID ของออบเจ็กต์ยังคงเหมือนเดิม และด้วยเหตุนี้ สมาชิกกลุ่มและการอนุญาตจะยังคงเหมือนเดิม

หากผู้ใช้ภายนอกเข้าสู่ระบบแอป Teams บนเดสก์ท็อปและดูองค์กรที่พวกเขาได้รับเชิญในฐานะผู้ใช้ภายนอก พวกเขาจะเห็นข้อผิดพลาดต่อไปนี้ เพื่อแก้ไขปัญหานี้ พวกเขาจะต้อง ออกจากระบบ Teams ออกจาก Teams ล้างแคช จากนั้นลงชื่อเข้าใช้อีกครั้งด้วยข้อมูลประจำตัวผู้ใช้ใหม่

ประสบการณ์นี้อาจแตกต่างออกไปสำหรับคุณ เนื่องจากการแปลงเป็นฟังก์ชันผู้ใช้ภายในอยู่ในการแสดงตัวอย่าง

คุณอาจถูกล่อลวงให้คลิก ลงชื่อเข้าใช้ เพื่อลองลงชื่อเข้าใช้อีกครั้ง เมื่อฉันพบสิ่งนั้น ระบบได้กรอกชื่อผู้ใช้ไว้ล่วงหน้าในช่องชื่อผู้ใช้ด้วยชื่อผู้ใช้ที่สร้างขึ้นสำหรับการแปลงผู้ใช้ภายใน แต่การลงชื่อเข้าใช้ยังคงล้มเหลว

เพื่อให้สิ่งนี้ใช้งานได้ ฉันต้องออกจาก Teams ล้างแคช Teams ในเครื่องแล้วลงชื่อเข้าใช้อีกครั้ง เมื่อลงชื่อเข้าใช้อีกครั้ง ความเป็นสมาชิกกลุ่มของฉันยังคงเหมือนเดิม และการสนทนาที่ฉันสร้างภายใน Teams ได้ลบ (แขก) ออก ข้อความนำหน้าชื่อของฉัน

สมาชิกกลุ่มทั้งหมดที่แสดงอยู่ในพอร์ทัล Microsoft 365 MyGroups ยังคงเหมือนกับเอกสารที่แชร์และการกำหนดสิทธิ์โดยตรงใน SharePoint

สิ่งที่เรามองหา

น่าเสียดายที่แม้ว่ากระบวนการจะง่ายดาย แต่ก็ไม่ได้เกิดขึ้นง่ายๆ เสมอไป ต่อไปนี้คือข้อควรพิจารณาบางประการที่ฉันระบุในระหว่างกระบวนการนี้:

  • พิจารณาผลกระทบต่อกลุ่มไดนามิกที่อาจมอบใบอนุญาต แอปพลิเคชัน หรือการเข้าถึงข้อมูลให้กับผู้ใช้ที่เพิ่งแปลงใหม่โดยไม่ได้ตั้งใจ
  • พิจารณาผลกระทบจากการอนุญาตให้ใช้สิทธิ์ในการแปลงผู้ใช้ทางธุรกิจภายนอกเป็นผู้ใช้ภายใน (เช่น โมเดล MAU ปัจจุบันสำหรับการกำกับดูแล ID)
  • สำหรับผู้ใช้ที่แปลงแล้วบนคลาวด์เท่านั้น ให้พิจารณาความจำเป็นในการจับคู่แบบนุ่มนวลกลับไปยัง Active Directory เพื่อเข้าถึงทรัพยากรภายในองค์กร
  • สรุป

    โดยรวมแล้ว นี่เป็นกระบวนการที่ตรงไปตรงมาและประหยัดเวลาในการเริ่มต้นใช้งานผู้ใช้ภายนอกในฐานะผู้ใช้ภายในในไดเรกทอรีของคุณ อย่างไรก็ตาม สิ่งเหล่านี้คือข้อควรพิจารณาที่สำคัญบางประการที่ต้องทำในสภาพแวดล้อมที่ใหญ่ขึ้นและซับซ้อนยิ่งขึ้น และนั่นคือผลกระทบของสมาชิกภายในที่ถูกเพิ่มลงในองค์กรของคุณซึ่งครั้งหนึ่งเคยเป็นผู้ใช้ภายนอกที่มีขอบเขตสิทธิ์ที่จำกัด

    บทความที่เกี่ยวข้อง