기술자료 (KB)/Power Platform

PowerApps - Entra ID 계정 수정

이완주 2025. 5. 23. 15:58

Entra ID의 계정을 수정하기 위해서는 먼저 계정을 불러와야 한다.

Office365사용자는 값을 수정 할 수는 없고 가지고 올 수 만 있다.

값을 수정하기 위해서는 MicrosoftEntraID를 이용했다. 
MicrosoftEntraID는 Password에 대한 업데이트는 하지 못하여 추후 PowerAutomate를 이용하여 별도로 구성해야 한다.

 

아래 소스는 사용자 UPN을 가지고 MailNickname을 가지고 오는 예이다. 값이 없으면 오류가 나타나는 것을 방지 하기 위해 IfError로 처리 하였다.

 

IfError(Office365사용자.UserProfile(txt_SearchAccount.Text).MailNickname,"")

 

[구성 화면]

 

1. 사용자 계정을 UPN 값으로 넣으면 아래와 같이 Entra ID에서 계정 정보를 가지고 온다.

2. 변경하고자 하는 사용자 정보를 수정한다.

3. Update user 버튼을 눌러 Entra ID 값을 수정 한다.

   값이 업데이트 되고 화면은 모두 초기화 된다.

 

   값이 업데이트 되고 확인하는데 약간의 시간이 소요되는 것을 확인했다.
   변경 전의 값이 나오면 10초 후 정도 다시 시도하면 정상적으로 값을 얻을 수 있다.

 

 

 

- con_EntraIDEditAccount:
    Control: GroupContainer@1.3.0
    Variant: ManualLayout
    Properties:
      Fill: =RGBA(217, 217, 216, 1)
      Height: =628
      Width: =805
      X: =40
      Y: =40
    Children:
      - con_EIDEA_Content:
          Control: GroupContainer@1.3.0
          Variant: ManualLayout
          Properties:
            Height: =523
            Width: =Parent.Width - 40
            X: =20
            Y: =con_EIDEA_Top.Y + con_EIDEA_Top.Height + 10
          Children:
            - txt_userPrincipalName_1:
                Control: Classic/TextInput@2.3.2
                Properties:
                  BorderColor: =RGBA(245, 245, 245, 1)
                  Color: =RGBA(50, 49, 48, 1)
                  Default: |-
                    =//IfError(MicrosoftEntraID.GetUser(txt_SearchAccount.Text).mail,"")
                    IfError(Office365사용자.UserProfile(txt_SearchAccount.Text).UserPrincipalName,"")
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  DisabledFill: =RGBA(242, 242, 241, 0)
                  Font: =Font.'Segoe UI'
                  HintText: ="userPrincipalName "
                  HoverBorderColor: =RGBA(16, 110, 190, 1)
                  HoverColor: =RGBA(50, 49, 48, 1)
                  HoverFill: =RGBA(255, 255, 255, 1)
                  PressedBorderColor: =RGBA(0, 120, 212, 1)
                  PressedColor: =RGBA(50, 49, 48, 1)
                  PressedFill: =RGBA(255, 255, 255, 1)
                  RadiusBottomLeft: =0
                  RadiusBottomRight: =0
                  RadiusTopLeft: =0
                  RadiusTopRight: =0
                  X: =408
                  Y: =55
            - txt_department_1:
                Control: Classic/TextInput@2.3.2
                Properties:
                  BorderColor: =RGBA(245, 245, 245, 1)
                  Color: =RGBA(50, 49, 48, 1)
                  Default: =IfError(Office365사용자.UserProfile(txt_SearchAccount.Text).Department,"")
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  DisabledFill: =RGBA(242, 242, 241, 0)
                  Font: =Font.'Segoe UI'
                  HintText: ="department"
                  HoverBorderColor: =RGBA(16, 110, 190, 1)
                  HoverColor: =RGBA(50, 49, 48, 1)
                  HoverFill: =RGBA(255, 255, 255, 1)
                  PressedBorderColor: =RGBA(0, 120, 212, 1)
                  PressedColor: =RGBA(50, 49, 48, 1)
                  PressedFill: =RGBA(255, 255, 255, 1)
                  RadiusBottomLeft: =0
                  RadiusBottomRight: =0
                  RadiusTopLeft: =0
                  RadiusTopRight: =0
                  X: =56
                  Y: =220
            - txt_displayName_1:
                Control: Classic/TextInput@2.3.2
                Properties:
                  BorderColor: =RGBA(245, 245, 245, 1)
                  Color: =RGBA(50, 49, 48, 1)
                  Default: |-
                    =//IfError(MicrosoftEntraID.GetUser(txt_SearchAccount.Text).displayName,"")
                    IfError(Office365사용자.UserProfile(txt_SearchAccount.Text).DisplayName,"")
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  DisabledFill: =RGBA(242, 242, 241, 0)
                  Font: =Font.'Segoe UI'
                  HintText: ="displayName "
                  HoverBorderColor: =RGBA(16, 110, 190, 1)
                  HoverColor: =RGBA(50, 49, 48, 1)
                  HoverFill: =RGBA(255, 255, 255, 1)
                  PressedBorderColor: =RGBA(0, 120, 212, 1)
                  PressedColor: =RGBA(50, 49, 48, 1)
                  PressedFill: =RGBA(255, 255, 255, 1)
                  RadiusBottomLeft: =0
                  RadiusBottomRight: =0
                  RadiusTopLeft: =0
                  RadiusTopRight: =0
                  X: =56
                  Y: |+
                    =110
            - txt_Jobtitle_1:
                Control: Classic/TextInput@2.3.2
                Properties:
                  BorderColor: =RGBA(245, 245, 245, 1)
                  Color: =RGBA(50, 49, 48, 1)
                  Default: |-
                    =//IfError(MicrosoftEntraID.GetUser(txt_SearchAccount.Text).jobTitle,"")
                    IfError(Office365사용자.UserProfile(txt_SearchAccount.Text).JobTitle,"")
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  DisabledFill: =RGBA(242, 242, 241, 0)
                  Font: =Font.'Segoe UI'
                  HintText: ="jobTitle "
                  HoverBorderColor: =RGBA(16, 110, 190, 1)
                  HoverColor: =RGBA(50, 49, 48, 1)
                  HoverFill: =RGBA(255, 255, 255, 1)
                  PressedBorderColor: =RGBA(0, 120, 212, 1)
                  PressedColor: =RGBA(50, 49, 48, 1)
                  PressedFill: =RGBA(255, 255, 255, 1)
                  RadiusBottomLeft: =0
                  RadiusBottomRight: =0
                  RadiusTopLeft: =0
                  RadiusTopRight: =0
                  X: =408
                  Y: =111
            - tog_AccountEnable_1:
                Control: Classic/Toggle@2.1.0
                Properties:
                  BorderColor: =RGBA(0, 0, 0, 0)
                  BorderStyle: =BorderStyle.None
                  Color: =RGBA(50, 49, 48, 1)
                  Default: =IfError(Office365사용자.UserProfile(txt_SearchAccount.Text).AccountEnabled,"")
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  FalseFill: =RGBA(96, 94, 92, 1)
                  FalseHoverFill: =RGBA(50, 49, 48, 1)
                  FalseText: ="Disable"
                  FocusedBorderThickness: =4
                  Font: =Font.'Segoe UI'
                  Height: =34
                  HoverBorderColor: =RGBA(0, 0, 0, 0)
                  PressedBorderColor: =RGBA(0, 0, 0, 0)
                  TrueFill: =RGBA(0, 120, 212, 1)
                  TrueHoverFill: =RGBA(16, 110, 190, 1)
                  TrueText: ="Enable"
                  Width: =145
                  X: =408
                  Y: =223
            - btn_Submit_1:
                Control: Classic/Button@2.2.0
                Properties:
                  BorderColor: =RGBA(0, 0, 0, 0)
                  BorderStyle: =BorderStyle.None
                  Color: =RGBA(255, 255, 255, 1)
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  DisabledFill: =RGBA(242, 242, 241, 0)
                  DisplayMode: |-
                    =//If( lbl_WarringMessage.Text="",DisplayMode.Disabled,DisplayMode.Edit)
                    If(IsBlank(txt_userPrincipalName_1.Text) Or IsBlank(txt_displayName_1.Text),DisplayMode.Disabled,DisplayMode.Edit)
                  Fill: =RGBA(0, 120, 212, 1)
                  Font: =Font.'Segoe UI'
                  HoverBorderColor: =RGBA(0, 0, 0, 0)
                  HoverColor: =RGBA(255, 255, 255, 1)
                  HoverFill: =RGBA(16, 110, 190, 1)
                  OnSelect: "=// txt_businessPhones.Text 값이 null일 경우 공백 문자열(\" \")을 대신 사용하여 컬렉션(colbusinessPhone)을 생성\nClearCollect(colbusinessPhone, Coalesce(txt_businessPhones_1.Text, \" \"));\n\nMicrosoftEntraID.UpdateUser(\n    txt_SearchAccount.Text, // 대상 사용자(UPN 또는 objectId)\n    \n    {\n        /* ── 계정 정보 ───────────────────────────── */\n        mailNickname: Coalesce(txt_mailNickname_1.Text,  \"\"),\n        userPrincipalName: Coalesce(txt_userPrincipalName_1.Text,  \"\"),\n\n        /* ── 인적 정보 ───────────────────────────── */\n        surname:     Coalesce(txt_surname_1.Text,  \"\"),   // 성\n        givenName:   Coalesce(txt_givenName_1.Text, \"\"),   // 이름\n        displayName: Coalesce(txt_displayName_1.Text, \"\"),\n\n        /* ── 조직 정보 ───────────────────────────── */\n        jobTitle:    Coalesce(txt_Jobtitle_1.Text,  \"\"),   // 직책\n        department:  Coalesce(txt_department_1.Text, \"\"),  // 부서\n\n        /* ── 연락처 정보 ─────────────────────────── */\n        mobilePhone: Coalesce(txt_mobilePhone_1.Text, \"\"),\n        businessPhones: First(colbusinessPhone),\n\n        /* ── 계정 상태(옵션) ────────────────────── */\n        accountEnabled: tog_AccountEnable_1.Value         // 토글 값 사용\n    }\n);\n\n// 사용자 입력 필드 초기화\nReset(txt_SearchAccount);\n"
                  PressedBorderColor: =RGBA(0, 69, 120, 1)
                  PressedColor: =RGBA(255, 255, 255, 1)
                  PressedFill: =RGBA(16, 110, 190, 1)
                  RadiusBottomLeft: =0
                  RadiusBottomRight: =0
                  RadiusTopLeft: =0
                  RadiusTopRight: =0
                  Text: ="Update user"
                  X: =568
                  Y: =400
            - txt_mailNickname_1:
                Control: Classic/TextInput@2.3.2
                Properties:
                  BorderColor: =RGBA(245, 245, 245, 1)
                  Color: =RGBA(50, 49, 48, 1)
                  Default: =IfError(Office365사용자.UserProfile(txt_SearchAccount.Text).MailNickname,"")
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  DisabledFill: =RGBA(242, 242, 241, 0)
                  Font: =Font.'Segoe UI'
                  HintText: ="mailNickname"
                  HoverBorderColor: =RGBA(16, 110, 190, 1)
                  HoverColor: =RGBA(50, 49, 48, 1)
                  HoverFill: =RGBA(255, 255, 255, 1)
                  PressedBorderColor: =RGBA(0, 120, 212, 1)
                  PressedColor: =RGBA(50, 49, 48, 1)
                  PressedFill: =RGBA(255, 255, 255, 1)
                  RadiusBottomLeft: =0
                  RadiusBottomRight: =0
                  RadiusTopLeft: =0
                  RadiusTopRight: =0
                  X: =56
                  Y: =55
            - txt_surname_1:
                Control: Classic/TextInput@2.3.2
                Properties:
                  BorderColor: =RGBA(245, 245, 245, 1)
                  Color: =RGBA(50, 49, 48, 1)
                  Default: |-
                    =//IfError(MicrosoftEntraID.GetUser(txt_SearchAccount.Text).surname,"")
                    IfError(Office365사용자.UserProfile(txt_SearchAccount.Text).Surname,"")
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  DisabledFill: =RGBA(242, 242, 241, 0)
                  Font: =Font.'Segoe UI'
                  HintText: ="surname"
                  HoverBorderColor: =RGBA(16, 110, 190, 1)
                  HoverColor: =RGBA(50, 49, 48, 1)
                  HoverFill: =RGBA(255, 255, 255, 1)
                  PressedBorderColor: =RGBA(0, 120, 212, 1)
                  PressedColor: =RGBA(50, 49, 48, 1)
                  PressedFill: =RGBA(255, 255, 255, 1)
                  RadiusBottomLeft: =0
                  RadiusBottomRight: =0
                  RadiusTopLeft: =0
                  RadiusTopRight: =0
                  X: =56
                  Y: =165
            - txt_givenName_1:
                Control: Classic/TextInput@2.3.2
                Properties:
                  BorderColor: =RGBA(245, 245, 245, 1)
                  Color: =RGBA(50, 49, 48, 1)
                  Default: =IfError(Office365사용자.UserProfile(txt_SearchAccount.Text).GivenName,"")
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  DisabledFill: =RGBA(242, 242, 241, 0)
                  Font: =Font.'Segoe UI'
                  HintText: ="givenName"
                  HoverBorderColor: =RGBA(16, 110, 190, 1)
                  HoverColor: =RGBA(50, 49, 48, 1)
                  HoverFill: =RGBA(255, 255, 255, 1)
                  PressedBorderColor: =RGBA(0, 120, 212, 1)
                  PressedColor: =RGBA(50, 49, 48, 1)
                  PressedFill: =RGBA(255, 255, 255, 1)
                  RadiusBottomLeft: =0
                  RadiusBottomRight: =0
                  RadiusTopLeft: =0
                  RadiusTopRight: =0
                  X: =408
                  Y: =165
            - txt_businessPhones_1:
                Control: Classic/TextInput@2.3.2
                Properties:
                  BorderColor: =RGBA(245, 245, 245, 1)
                  Color: =RGBA(50, 49, 48, 1)
                  Default: |+
                    =//IfError(MicrosoftEntraID.GetUser(txt_SearchAccount.Text).mail,"")
                    IfError(First(Office365사용자.UserProfile(txt_SearchAccount.Text).BusinessPhones).Value,"")
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  DisabledFill: =RGBA(242, 242, 241, 0)
                  Font: =Font.'Segoe UI'
                  HintText: ="businessPhones"
                  HoverBorderColor: =RGBA(16, 110, 190, 1)
                  HoverColor: =RGBA(50, 49, 48, 1)
                  HoverFill: =RGBA(255, 255, 255, 1)
                  PressedBorderColor: =RGBA(0, 120, 212, 1)
                  PressedColor: =RGBA(50, 49, 48, 1)
                  PressedFill: =RGBA(255, 255, 255, 1)
                  RadiusBottomLeft: =0
                  RadiusBottomRight: =0
                  RadiusTopLeft: =0
                  RadiusTopRight: =0
                  X: =56
                  Y: =275
            - txt_mobilePhone_1:
                Control: Classic/TextInput@2.3.2
                Properties:
                  BorderColor: =RGBA(245, 245, 245, 1)
                  Color: =RGBA(50, 49, 48, 1)
                  Default: =IfError(MicrosoftEntraID.GetUser(txt_SearchAccount.Text).mobilePhone,"")
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  DisabledFill: =RGBA(242, 242, 241, 0)
                  Font: =Font.'Segoe UI'
                  HintText: ="mobilePhone"
                  HoverBorderColor: =RGBA(16, 110, 190, 1)
                  HoverColor: =RGBA(50, 49, 48, 1)
                  HoverFill: =RGBA(255, 255, 255, 1)
                  PressedBorderColor: =RGBA(0, 120, 212, 1)
                  PressedColor: =RGBA(50, 49, 48, 1)
                  PressedFill: =RGBA(255, 255, 255, 1)
                  RadiusBottomLeft: =0
                  RadiusBottomRight: =0
                  RadiusTopLeft: =0
                  RadiusTopRight: =0
                  X: =408
                  Y: =275
      - con_EIDEA_Top:
          Control: GroupContainer@1.3.0
          Variant: ManualLayout
          Properties:
            Height: =60
            Width: =Parent.Width - 40
            X: =20
            Y: =20
          Children:
            - txt_SearchAccount:
                Control: Classic/TextInput@2.3.2
                Properties:
                  BorderColor: =RGBA(245, 245, 245, 1)
                  Color: =RGBA(50, 49, 48, 1)
                  Default: =
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  DisabledFill: =RGBA(242, 242, 241, 0)
                  Font: =Font.'Segoe UI'
                  HintText: ="수정하고자 하는 계정의 Mail 주소를 입력"
                  HoverBorderColor: =RGBA(16, 110, 190, 1)
                  HoverColor: =RGBA(50, 49, 48, 1)
                  HoverFill: =RGBA(255, 255, 255, 1)
                  PressedBorderColor: =RGBA(0, 120, 212, 1)
                  PressedColor: =RGBA(50, 49, 48, 1)
                  PressedFill: =RGBA(255, 255, 255, 1)
                  RadiusBottomLeft: =0
                  RadiusBottomRight: =0
                  RadiusTopLeft: =0
                  RadiusTopRight: =0
                  X: =409
                  Y: =10
            - Label8:
                Control: Label@2.5.1
                Properties:
                  BorderColor: =RGBA(0, 0, 0, 0)
                  BorderStyle: =BorderStyle.None
                  BorderThickness: =2
                  Color: =RGBA(50, 49, 48, 1)
                  DisabledBorderColor: =RGBA(0, 0, 0, 0)
                  DisabledColor: =RGBA(161, 159, 157, 1)
                  FocusedBorderThickness: =4
                  Font: =Font.'Segoe UI'
                  FontWeight: =FontWeight.Bold
                  Text: ="Entra ID 계정 수정"
                  Width: =337
                  X: =16
                  Y: =10

 

 

[참고자료]

 

 

Microsoft Entra ID - Connectors

Additional resources In this article

learn.microsoft.com

 

댓글수0