

本当にやりたいことは「MacOSアプリで何度もパスワードを入力させたくない」なのですが、その解決策のために下記のページを発見しました。  
[Bypass admin password when changing network
configuration](https://developer.apple.com/forums/thread/52729)

そこに  
[EvenBetterAuthorizationSample](https://developer.apple.com/library/archive/samplecode/EvenBetterAuthorizationSample/Introduction/Intro.html)
へのリンクがありました。

`Read Me About EvenBetterAuthorizationSample.txt` の `Building the
Sample`の項目にある通りplistを修正し実行しました（とは言うもののDevelop
IDの確認方法がよくわからなかったため、https://developer.apple.com/ から `Membership
Details`の項目の`Team ID`の値で置き換えました）。

スキームは下記のように設定して実行しましました。  
[![画像の説明をここに入力](https://i.stack.imgur.com/Z83Qj.png)](https://i.stack.imgur.com/Z83Qj.png)

実行結果は、下記です。  
[![画像の説明をここに入力](https://i.stack.imgur.com/Hggsp.png)](https://i.stack.imgur.com/Hggsp.png)

Install以外のどのボタンを押しても

[code]

    error NSCocoaErrorDomain / 4099
    connection invalidated
    
[/code]

というエラーになります。

ダメ元でInstallを押すと、パスワードを要求されるので入力すると

`error CFErrorDomainLaunchd / 4`

と表示されました。

結局、このサンプルコードは何をインストールしようとしているのでしょうか？  
このサンプルコードと  
[Bypass admin password when changing network
configuration](https://developer.apple.com/forums/thread/52729)  
の質問タイトルであります、パスワードをバイパスするという関係性がいまいちピンと来ません。  
このサンプルコードは何をしようとしているのでしょうか？

なんとなく  
[AuthorizationCreate](https://developer.apple.com/documentation/security/1397453-authorizationcreate?language=objc)  
に記載されている

> You can also use this function to preauthorize rights by specifying the
> kAuthorizationFlagPreAuthorize mask. Preauthorization is most useful when a
> right has a zero timeout. For example, you can preauthorize in the
> application and if it succeeds, call the helper tool and request
> authorization. This eliminates calling the helper tool if the user cannot
> later authorize the specified rights.

の中に記載されている `the helper tool`
と何か関係している気もしています（とはいえヘルパーツールとは？という感じで言葉以上の理解がいまいち進んでないですが）

同ページの

> In macOS 10.4 and later, you can also pass a user name and password in order
> to authorize a user without user interaction. Possible values for this
> parameter are listed in Security.framework/Headers/AuthorizationTags.h.  
>  The data passed in this parameter is not stored in the authorization
> reference; it is used only during authorization. If you are not passing any
> data in this parameter, pass the constant kAuthorizationEmptyEnvironment.

ところも気になっており、これで本当にやりたかったパスワードを何度も入力させたくないを達成できないか別途調査中です。

（本当はSwiftでコードを作成しているのですが、この手の権限の情報がObjective-Cでの情報ばかりがネットにあるので、仕方なくObjective-
Cで情報を集めています）


CC BY-SA 4.0
2021-01-25T07:16:24.627
73560
2021-01-25T08:08:42.157
2021-01-25T08:08:42.157
9008
9008
question
swift xcode objective-c
EvenBetterAuthorizationSampleは、いったい何をするものをインストールするのでしょうか？