Microsoft Identity Manager 2016 の bhold 開発者向けリファレンス

BHOLD コアモジュールは、スクリプトコマンドを処理できます。 これは、.NET プロジェクトの bscript.dll を使用して直接行うことができます。 また、web サービスの b1scriptservice インターフェイスと対話します。

スクリプトを実行する前に、スクリプト内のすべての情報を収集して、このスクリプトを作成する必要があります。 この情報は、次のソースから収集できます。

  • ユーザー入力
  • BHOLD データ
  • アプリケーション
  • その他

BHOLD データを取得するには、スクリプトオブジェクトの GetInfo 関数を使用します。 BHOLD データベースに格納されているすべてのデータを表示できるコマンドの完全な一覧があります。 ただし、表示されるデータには、ログインしているユーザーの表示アクセス許可が適用されます。 結果は、解析可能な XML ドキュメントの形式になります。

別の情報源として、BHOLD によって制御されるアプリケーションの1つを使用できます。 アプリケーションスナップインには、アプリケーション固有の情報を提示するために使用できる FunctionDispatch という特殊な機能があります。 これは XML ドキュメントとしても表示されます。

最後に、他の方法がない場合、スクリプトは他のアプリケーションやシステムに直接コマンドを含めることができます。 BHOLD サーバーに追加のソフトウェアを NoThenstallation と、システム全体のセキュリティが損なわれる可能性があります。

これらの情報はすべて1つの XML ドキュメントに格納され、BHOLD スクリプトオブジェクトに割り当てられます。 オブジェクトは、このドキュメントと定義済みの関数を組み合わせます。 事前定義された関数は、スクリプト入力ドキュメントを BHOLD コマンドドキュメントに変換する XSL ドキュメントです。

BHOLD スクリプトの処理

コマンドは、ドキュメントと同じ順序で実行されます。 1つの関数が失敗した場合は、実行されたすべてのコマンドがロールバックされます。

スクリプトオブジェクト

ここでは、スクリプトオブジェクトの使用方法について説明します。

BHOLD 情報の取得

GetInfo関数は、bhold 承認システムで利用可能なデータから情報を取得するために使用されます。 関数は、関数名と最終的に1つ以上のパラメーターを必要とします。 この関数が成功すると、BHOLD オブジェクトまたはコレクションが XML ドキュメントの形式で返されます。

関数が成功しなかった場合、GetInfo 関数は空の文字列またはエラーを返します。 エラーの説明と番号を使用して、エラーに関する詳細情報を取得できます。

GetInfo 関数 ' FunctionDispatch ' は、BHOLD システムによって制御されるアプリケーションから情報を取得するために使用できます。 この関数には、アプリケーションの ID、ASI で定義されているディスパッチ関数、ASI のサポート情報を含む XML ドキュメントの3つのパラメーターが必要です。 関数が成功した場合、結果は XML 形式で結果オブジェクトに表示されます。

次のスニペットは、簡単な "GetInfo" の例です。

ScriptProcessor myScriptProcessor = new ScriptProcessor();
myScriptProcessor.Initializae("CORP\\b1user");
myScriptProcessor.GetInfo("OrgUnit", "1");

同様に、 Bscript オブジェクトには、web サービスを介してアクセスすることもでき ます。 これを行うには、を使用してプロジェクトに web 参照を追加し http://:5151/BHOLD/Core/b1scriptservice.asmx ます。ここで、は BHOLD バイナリがインストールされているサーバーです。 詳細については、「 Visual Studio プロジェクトへの web サービス参照の追加」を参照してください。

次の例では、web サービスから GetInfo 関数を使用する方法を示します。 このコードは、OrgID が1の組織単位を取得し、その組織単位の名前を画面に表示します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace bhold_console
{
    class Program
    {
        static void Main(string[] args)
        {
             var bholdService = new BHOLDCORE.B1ScriptService();
             bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";
             string orgname= "";

             if (args.Length == 3)
             {
                 //Use explicit credentials from command line
                 bholdService.UseDefaultCredentials = false;
                 bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
                 bholdService.PreAuthenticate = true;
             }
             else
             {
                 bholdService.UseDefaultCredentials = true;
                 bholdService.PreAuthenticate = true;
             }

             //Load BHOLD information into an xml document and loop through document to find the bholdDescription value
             var myOrgUnit = new System.Xml.XmlDocument();
             myOrgUnit.LoadXml(bholdService.GetInfo("OrgUnit","1","","");

            XmlNodeList myList = myOrgUnit.SelectNodes(("//item");

            foreach (XmlNode myNode in myList)
            {
                for (int i = 0; i < myNode.ChildNodes.Count; i++)
                {
                    if (myNode.ChildNodes[i].InnerText.ToString() == "bholdDescription")
                    {
                        orgname = myNode.ChildNodes[i + 1].InnerText.ToString();
                    }
                }
            }

            System.Console.WriteLine("The Organizational Unit Name is: " + orgname);

        }
    }
}

次の VBScript の例では、SOAP を介して web サービスを使用し、GetInfo を使用します。 SOAP 1.1、SOAP 1.2、および HTTP POST のその他の例については、BHOLD マネージリファレンスに関するセクションをご覧ください。または、ブラウザーから直接 web サービスに移動して、そこに表示することもできます。

Dim SOAPRequest
Dim SOAPParameters
Dim SOAPResponse
Dim xmlhttp

Set xmlhttp = CreateObject("Microsoft.XMLHTTP")

xmlhttp.open "POST", "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx", False, "CORP\Administrator", "abc123*2k"

xmlhttp.setRequestHeader "Content-type", "text/xml; charset=utf-8"
xmlhttp.setRequestHeader "SOAPAction", "http://B1/B1ScriptService/GetInfo"

SOAPRequest = "<?xml version='1.0' encoding='utf-8'?> <soap:Envelope" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsi=""http://" & vbCRLF
SOAPRequest = SOAPRequest & " www.w3.org/2001/XMLSchema-instance""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsd=""http://www.w3.org/2001/XMLSchema""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & vbCRLF
SOAPRequest = SOAPRequest & " <soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " <GetInfo xmlns=""http://B1/B1ScriptService"">" & vbCRLF
SOAPRequest = SOAPRequest & " <functionName>OrgUnit</functionName>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter1>1</parameter1>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter2></parameter2>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter3></parameter3>" & vbCRLF
SOAPRequest = SOAPRequest & " </GetInfo>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Envelope>"
MsgBox SOAPRequest

xmlhttp.send SOAPRequest 

SOAPResponse = xmlhttp.responseText

MsgBox SOAPResponse

スクリプトの実行

Bscriptオブジェクトのexecutescript関数を使用すると、スクリプトを実行できます。 この関数には、2つのパラメーターが必要です。 最初のパラメーターは、スクリプトによって使用されるカスタム情報を含む XML ドキュメントです。 2番目のパラメーターは、使用する定義済みスクリプトの名前です。 BHOLD の事前定義済みスクリプトディレクトリには、関数と同じ名前で、拡張子が .xsl の XSL ドキュメントを指定する必要があります。

関数が成功しなかった場合、ExecuteScript 関数は値 False を返します。 エラーの説明と番号を使用して、問題の原因を把握できます。 ExecuteXML web メソッドを使用する例を次に示します。 このメソッドは、ExecuteScript を呼び出します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            var bholdService = new BHOLDCORE.B1ScriptService();
            bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";

            if (args.Length == 3)
            {
                //Use explicit credentials from command line
                bholdService.UseDefaultCredentials = false;
                bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
                bholdService.PreAuthenticate = true;
            }
            else
            {
                bholdService.UseDefaultCredentials = true;
                bholdService.PreAuthenticate = true;
            }
            System.Console.WriteLine( "Add user #3 to role #44, result: {0}", bholdService.ExecuteXml(roleAddUser("44", "3")) );
            System.Console.WriteLine("Add user D1 to role 'MR-OU2 No Users', result: {0}", bholdService.ExecuteXml(roleAddUser("MR-OU2 No Users", "D1")));

        }

        private static System.Xml.XmlNode roleAddUser(string roleId, string userId)
        {
            var script = new System.Xml.XmlDocument();
            script.LoadXml(string.Format("<functions>"
                                        +"  <function name='roleadduser' roleid='{0}' userid='{1}' />"
                                        +"</functions>",
                                        roleId,
                                        userId)
                           );
            return script.DocumentElement;

BholdScriptResult

この GetInfo 関数は、 executescript 関数の実行後に使用できます。 関数は、完全な実行レポートを含む XML 形式の文字列を返します。 スクリプトノードには、実行されたスクリプトの XML 構造が含まれています。

スクリプトの実行中に失敗した関数については、ノード名と共にノード関数が追加されます。 ExecuteXML とエラーがドキュメントの最後に追加されます。生成されたすべての Id が追加されます。

エラーを含む関数だけが追加されていることに注意してください。 エラー番号 ' 0 ' は、関数が実行されていないことを示します。

<Bhold>
  <Script>
    <functions>
      <function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>     
      <function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>      
    </functions>
  </Script>
  <Function>
    <Name>OrgUnitadd</Name>
    <ExecutedXML>
      <function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>
    </ExecutedXML>
    <Error Number="5" Description="Violation of UNIQUE KEY constraint 'IX_OrgUnits'. Cannot insert duplicate key in object 'dbo.OrgUnits'.
The statement has been terminated."/>
  </Function>
  <Function>
    <Name>roleaddOrgUnit</Name>
    <ExecutedXML>
      <function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>
    </ExecutedXML>
    <Error Number="0" Description=""/>
  </Function>
  <IDS>
    <ID name="@ID@">35</ID>
  </IDS>
</Bhold>

ID パラメーター

ID パラメーターは特別な処理を行います。 数値以外の値は、BHOLD データストア内の対応するエンティティを検索するための検索値として使用されます。 検索値が一意でない場合は、検索値に準拠している最初のエンティティが返されます。

数値の検索値と Id を区別するために、プレフィックスを使用することができます。 検索値の最初の6文字が ' no_id: ' と等しい場合、これらの文字は、検索に使用される前に削除されます。 SQL ワイルドカード文字 '% ' が使用されている可能性があります。

次のフィールドは、検索値と共に使用されます。

ID 型 検索フィールド
OrgUnitID 説明
roleID 説明
taskID 説明
userID DefaultAlias

アクセスとアクセス許可のスクリプトを作成

Active Server ページのサーバー側コードは、スクリプトの実行に使用されます。 そのため、スクリプトへのアクセスは、これらのページへのアクセスを意味します。 BHOLD システムは、カスタムページのエントリポイントに関する情報を保持します。 この情報には、スタートページと関数の説明が含まれます (複数の言語がサポートされている必要があります)。

ユーザーは、カスタムページを入力してスクリプトを実行できることを承認されています。 各エントリポイントはタスクとして表示されます。 ロールまたは単位を使用してこのタスクを取得した各ユーザーは、対応する関数を実行できます。

メニューの新しい関数には、ユーザーが実行できるすべてのカスタム関数が表示されます。 スクリプトは、ログオンしているユーザーとは異なる id で BHOLD システムのアクションを実行できます。 オブジェクトに対して監視を行わずに、特定のアクションを実行する権限を付与することができます。 たとえば、会社に新しい顧客を入力することのみが許可されている従業員にとっては、これが有用な場合があります。 これらのスクリプトは、自己登録ページの作成にも使用できます。

コマンドスクリプト

コマンドスクリプトには、BHOLD システムによって実行される関数の一覧が含まれています。 この一覧は、次の定義に準拠した XML ドキュメントで記述されています。

コマンドスクリプト <functions>functions</functions>
functions 関数 {function}
関数 (function) <function name="functionName" functionParameters [return] (/ | >> parameterList < / function > )
functionName 次のセクションで説明するように、有効な関数名。
functionParameters { functionParameter }
functionParameter parameterName = "parameterValue"
parameterName 有効なパラメーター名。
parameterValue @variable@ |値
有効なパラメーター値。
parameterList {parameterItem}
parameterItem parameterValue
戻り値 return="@variable@"
変数 カスタム変数名。

XML には、次の特殊文字の翻訳があります。

XML 文字
&amp; &
&lt; <
&gt; >
&quot; "
&apos; '

これらの XML 文字は識別子で使用できますが、推奨されません。

次のコードは、3 つの関数を含む有効なコマンド ドキュメントの例を示しています。

<functions>

   <functionname="OrgUnitAdd" parentID="34" description="Acme Inc." orgtypeID="5" return="@UnitID@" />

   <function name="UserAdd" description="John Doe" alias="jdoe" languageID="1" OrgUnitID="@UnitID@" />

   <function name="TaskAddFile" taskID="93" path="/customers/purchase">
      <parameters>
         <parameter name="history"> True</parameter>
      </parameters>
   </function>

</functions>

OrgUnitAdd 関数は、作成されたユニットの ID を UnitID という変数に格納します。 この変数は、UserAdd 関数の入力として使用されます。 この関数の戻り値は使用されません。 次のセクションでは、使用できるすべての関数、必要なパラメーター、およびそれらの戻り値について説明します。

関数の実行

このセクションでは、実行関数を使用する方法について説明します。

ABAAttributeRuleAdd

特定の属性の種類に対して新しい属性ルールを作成します。 属性ルールは、1 つの属性型にのみリンクできます。

指定した属性ルールは、すべての可能な属性型にリンクできます。

RuleType は、"ABAattributeruletypeupdate" コマンドでは変更できません。 属性の説明が一意である必要があります。

引数
説明 Text
RuleType 属性ルールの種類を指定します。 属性ルールの種類に応じて、他の引数を含める必要があります。 次のルールの種類の値が有効です。
  • 0: 正規表現 (引数 "value" を追加)。
  • 1: 値 (引数 "operator" と "value" を追加します)。
  • 2: 値の一覧。
  • 3: 範囲 (引数 "rangemin" と "rangemax" を追加します)。
  • 4: Age (引数 "operator" と "value" を追加します)。
InvertResult ["0"|"1"|"N"|"Y"]
AttributeTypeID Text
省略可能な引数。
演算子 Text
: RuleType が 1 または 4 の場合、この引数は必須です。 指定できる値は'='、''、 < または ' > 'です。 XML タグでは、' ' に " " を使用し、 ' > ' に " " >< を使用する必要 < があります。
RangeMin 数値
: RuleType が 3 の場合、この 引数は 必須です。
RangeMax 数値
: RuleType が 3 の場合、この 引数は 必須です。
Text
: RuleType が 0、1、または 4 の場合、この引数は必須です。 引数は、数値または英数字の値である必要があります。
戻り値の型 AttributeRuleID Text

applicationadd

新しいアプリケーションを作成し、新しいアプリケーションの ID を返します。

引数
description
マシン
name
パラメーター
protocol
username
password
svroleID (省略可能) この引数が存在しない場合は、現在のユーザーの supervisor ロールが使用されます。
Applicationaliasformula (省略可能) 別名の数式は、ユーザーがアプリケーションのアクセス許可に割り当てられたときに、ユーザーのエイリアスを作成するために使用されます。 ユーザーにこのアプリケーションのエイリアスがまだない場合は、エイリアスが作成されます。 値が指定されている場合は、ユーザーの既定のエイリアスがアプリケーションのエイリアスとして使用されます。 数式は として書式設定されます [<<objecttype>>.<<nameofobjecttypeattribute>>(startindexoffset,length offset)] 。 オフセットは省略可能です。 ユーザー属性とアプリケーション属性のみを使用できます。 フリー テキストを使用できます。 予約文字は、左角かっこ ([) と右角かっこ (]) です。 (例: [Application.bholdDescription]\[User.bholdDefAlias(1,5)])。
戻り値の型 新しいアプリケーションの ID。

AttributeSetValue

オブジェクト型に接続されている属性型の値を設定します。 オブジェクト型と属性型の説明が一意である必要があります。

引数
ObjectTypeID Text
ObjectID Text
AttributeTypeID Text
Text
の戻り値の型 :

AttributeTypeAdd

新しい属性の型/プロパティ型を挿入します。

引数
DataTypeID Text
説明 (=ID) Text
: 予約語 ('a'、'frm'、'id'、'usr'、'bhold' を含む) は使用できません。
MaxLength [1,..,255] の数値
ListOfValues (ブール値) ["0"|"1"|"N"|"Y"]
DefaultValue Text
の戻り値の型 :
AttributeTypeID Text

AttributeTypeSetAdd

新しい属性型セットを挿入します。 属性型セットの説明が一意である必要があります。

引数
説明 (=ID) Text
の戻り値の型 :
AttributeTypeSetID Text

AttributeTypeSetAddAttributeType

既存の属性型セットに新しい属性型を挿入します。 属性型セットと属性型の説明が一意である必要があります。

引数
AttributeTypeSetID Text
AttributeTypeID Text
注文 数値
LocationID Text
: 場所は "group" または "single" です。
Mandatory ["0"|"1"|"N"|"Y"]
の戻り値の型 :

ObjectTypeAddAttributeTypeSet

オブジェクト型に設定された属性型を追加します。 オブジェクト型と属性型セットの説明が一意である必要があります。 オブジェクトの種類は、System、OrgUnit、User、Task です。

引数
ObjectTypeID Text
AttributeTypeSetID Text
注文 数値
Visible
  • 0: 属性の型セットが表示されます。
  • 2: 属性の種類セットは、[詳細情報] ボタンが 選択されているときに表示されます。
  • 1: 属性の型セットは表示されません。
の戻り値の型 :

OrgUnitadd

新しい組織単位を作成し、新しい組織単位の ID を返します。

引数
description
orgtypeID
parentID
OrgUnitinheritedroles (省略可能)
の戻り値の型 :
新しいユニットの ID パラメーター OrgUnitinheritedroles
の値は yes または no です。

OrgUnitaddsupervisor

ユーザーを組織単位の監督者にする。

引数
svroleID 引数 userID も使用できます。 この場合、既定の supervisor ロールが選択されます。 既定の supervisor ロールには、 のような 名前__svrole番号 が続きます。 引数 userID は、下位互換性のために使用できます。
OrgUnitID

OrgUnitadduser

ユーザーを組織単位のメンバーにする。

引数
userID
OrgUnitID

OrgUnitdelete

組織単位を削除します。

引数
OrgUnitID

OrgUnitdeleteuser

組織単位のメンバーとしてユーザーを削除します。

引数
userID
OrgUnitID

roleadd

新しいロールを作成します。

引数
説明
svrole
svroleID (省略可能) この引数が存在しない場合は、現在のユーザーのスーパーバイザー ロールが使用されます。
ContextAdaptable (省略可能) ["0","1","N","Y"]
MaxPermissions (省略可能) Integer
MaxRoles (省略可能) Integer
MaxUsers (省略可能) Integer
の戻り値の型 :
新しいロールの ID

roleaddOrgUnit

組織単位にロールを割り当てる。

引数
OrgUnitID roleID
inheritThisRole 'true' または 'false' は、基になるユニットにロールが提案されているかどうかを示します。

roleaddrole

ロールを別のロールのサブロールとして割り当てる。

引数
roleID
subRoleID

roleaddsupervisor

ユーザーをロールのスーパーバイザーにする。

引数
svroleID 引数 userID も使用できます。 この場合、既定の supervisor ロールが選択されます。 既定の supervisor ロールには、 のような 名前__svrole番号 が続きます。 引数 userID は、下位互換性のために使用できます。
roleID

roleadduser

ユーザーにロールを割り当てます。 contextID が指定されている場合、ロールをコンテキストに適応可能なロールにすることはできません。

引数
userID
roleID
durationType (省略可能) 値 'free'、'hours'、および 'days' を含めることができます。
durationLength (省略可能) durationType が 'hours' または 'days' の場合は必須です。 には、ロールがユーザーに割り当てられる時間数または日数の整数値が含まれている必要があります。
start (省略可能) ロールが割り当てられる日時。 この属性を省略すると、ロールはすぐに割り当てられます。 日付形式は 'YYYY-MM-DDThh:nn:ss" で、年、月、日だけが必要です。 たとえば、"2004-12-11" と "2004-11-28T08:00" は有効な値です。
end (省略可能) ロールが取り消された日時。 durationType と durationLength が指定されている場合、この値は無視されます。 日付形式は 'YYYY-MM-DDThh:nn:ss" で、年、月、日だけが必要です。 たとえば、"2004-12-11" と "2004-11-28T08:00" は有効な値です。
linkreason start、end、または duration が指定されている場合は必須です。それ以外の場合は無視されます。
contextId (省略可能) 組織単位の ID。コンテキストに適応可能なロールにのみ必要です。

roledelete

ロールを削除します。

引数
roleID

roledeleteuser

ユーザーへのロールの割り当てを削除します。 ユーザーによって継承されたロールは、このコマンドによって取り消されます。

引数
userID
roleID
contextID (省略可能)

roleproposeOrgUnit

Orgunits のメンバーとサブ OrgUnits に割り当てるロールを提案します。

引数
OrgUnitID
roleID
durationType (省略可能) には、' free '、' hours '、' days ' の値を含めることができます。
durationLength DurationType が ' hours ' または ' days ' の場合は、ロールがユーザーに割り当てられた時間または日数の整数値を含む必要があります。
durationFixed ' true ' または ' false ' は、このロールのユーザーへの割り当てが durationLength と同じである必要があるかどうかを示します。
継承したロール ' true ' または ' false ' は、ロールが基になる単位に対して提案されているかどうかを示します。

taskadd

新しいタスクを作成し、新しいタスクの ID を返します。

引数
applicationID
description 最大254文字のテキスト。
/tn 最大254文字のテキスト。
tokenGroupID
svroleID (省略可能) この引数が存在しない場合は、現在のユーザーのスーパーバイザーロールが使用されます。
contextAdaptable (省略可能) ["0","1","N","Y"]
過小構築 (省略可能) ["0","1","N","Y"]
auditaction (省略可能)
  • 0: 不明 (既定値)
  • 1: ReportOnly
  • 2: AlertAppAll
  • 3: AlertAppObsolete
  • 4: AlertAppMissing
  • 5: EnforceAppAll
  • 6: EnforceAppObsolete
  • 7: EnforceAppMissing
  • 8: AlertEnforceAppAll
  • 9: AlertEnforceAppObsolete
  • 10: AlertEnforceAppMissing
  • 11: ImportAll
auditalertmail (省略可能) このアクセス許可に関するアラートの送信先の電子メールアドレスは、監査担当者によって送信されます。 この引数が指定されていない場合は、監査者のアラートの電子メールアドレスが使用されます。
MaxRoles (省略可能) Integer
MaxUsers (省略可能) Integer
の戻り値の型 : 新しいタスクの ID。

taskadditask

2つのタスクに互換性がないことを示します。

引数
taskID
taskID2

taskaddrole

タスクをロールに割り当てます。

引数
roleID
taskID

taskaddsupervisor

ユーザーをタスクのスーパーバイザーにします。

引数
svroleID 引数 userID を使用することもできます。 この場合、既定のスーパーバイザーロールが選択されます。 既定の監修者ロールには __svrole のような名前が付けられ、その後に数字が続きます。 引数 userID は、下位互換性のために使用できます。
taskID

useradd

新しいユーザーを作成し、新しいユーザーの ID を返します。

引数
description
alias
languageID
  • 1: 英語
  • 2: オランダ語
OrgUnitID
enddate (省略可能) 日付形式は ' YYYY-MM-Yyyy-mm-ddthh: nn: ss "で、年、月、日のみが必要です。 たとえば、"2004-12-11" と "2004-11-28T08:00" は有効な値です。
disabled (省略可能)
  • 0: 有効
  • 1: 無効
MaxPermissions (省略可能) Integer
MaxRoles (省略可能) Integer
の戻り値の型 : 新しいユーザーの ID。

UserAddRole

ユーザーロールを追加します。

引数

UserDeleteRole

ユーザーロールを削除します。

引数

Userupdate

ユーザーの更新。

引数
UserID
description (省略可能)
language
  • 1: 英語
  • 2: オランダ語
userDisabled (省略可能)
  • 0: 有効
  • 1: 無効
UserEndDate (省略可能) 日付形式は 'YYYY-MM-DDThh:nn:ss" で、年、月、日だけが必要です。 たとえば、"2004-12-11" と "2004-11-28T08:00" は有効な値です。
firstName (省略可能)
middleName (省略可能)
lastName (省略可能)
maxPermissions (省略可能) Integer
maxRoles (省略可能) Integer

GetInfo 関数

このセクションで説明する一連の関数を使用して、BHOLD システムに格納されている情報を取得できます。 各関数は、BScript オブジェクトの GetInfo 関数を使用して呼び出されます。 一部のオブジェクトにはパラメーターが必要です。 返されるデータは、ビューのアクセス許可と、ログインしているユーザーの監視対象オブジェクトの対象になります。

GetInfo 引数

Name 説明
applications アプリケーションの一覧を返します。
attributetypes 属性型の一覧を返します。
orgtypes 組織単位の種類の一覧を返します。
OrgUnits 組織単位の属性のない組織単位の一覧を返します。
OrgUnitproposedroles 組織単位にリンクされている提案されたロールの一覧を返します。
OrgUnitroles 指定された組織単位の直接リンクされたロールの一覧を返します
Objecttypeattributetypes
権限
permissionusers
roles ロールの一覧を返します。
roletasks 指定したロールのタスクの一覧を返します。
tasks BHOLD で知られているすべてのタスクを返します。
users ユーザーの一覧を返します。
usersroles 指定されたユーザーのリンクされたスーパーバイザー ロールの一覧を返します。
userpermissions 指定したユーザーのアクセス許可の一覧を返します。

OrgUnit 情報

名前 パラメーター の戻り値の型 :
OrgUnit OrgUnitID OrgUnit
OrgUnitasiattributes OrgUnitID コレクション
OrgUnits filter (省略可能)、proptypeid (省略可能)
proptypeid で説明されている proptype の filter で説明されている文字列を含む 単位を検索します。 この ID を省略した場合、フィルターは単位の説明に適用されます。 フィルターが指定されていない場合は、すべての表示単位が返されます。
コレクション
OrgUnitOrgUnits OrgUnitID コレクション
OrgUnitparents OrgUnitID コレクション
OrgUnitpropertyvalues OrgUnitID コレクション
OrgUnitproptypes コレクション
OrgUnitusers OrgUnitID コレクション
OrgUnitproposedroles OrgUnitID コレクション
OrgUnitroles OrgUnitID コレクション
OrgUnitinheritedroles OrgUnitID コレクション
OrgUniunipervisors OrgUnitID コレクション
OrgUnitinheritedsupervisors OrgUnitID コレクション
OrgUniunipervisorroles OrgUnitID コレクション

ロール情報

名前 パラメーター の戻り値の型 :
role roleID Object
roles filter (省略可能) コレクション
roleasiattributes roleID コレクション
roleOrgUnits roleID コレクション
roleparentroles roleID コレクション
rolesubroles roleID コレクション
rolesupervisors roleID コレクション
rolesupervisorroles roleID コレクション
roletasks roleID コレクション
roleusers roleID コレクション
rolesupervisorroles roleID コレクション
proposedroleOrgUnits roleID コレクション
proposedroleusers roleID コレクション

アクセス許可 - タスク情報

名前 パラメーター の戻り値の型 :
権限 (permission) TaskID アクセス許可
権限 filter (省略可能) コレクション
permissionasiattributes TaskID コレクション
permissionattachments TaskID コレクション
permissionattributetypes - コレクション
permissionparams TaskID コレクション
permissionroles TaskID コレクション
permissionsupervisors TaskID コレクション
permissionsupervisorroles TaskID コレクション
permissionusers TaskID コレクション
タスク TaskID タスク
tasks filter (省略可能) コレクション
taskattachments TaskID コレクション
taskparams TaskID コレクション
taskroles TaskID コレクション
tasksupervisors TaskID コレクション
tasksupervisorroles TaskID コレクション
taskusers TaskID コレクション

ユーザー情報

名前 パラメーター の戻り値の型 :
ユーザー UserID User
users filter (省略可能)、attributetypeid (省略可能)
Attributetypeid によって指定された attributetype に含まれるユーザーを検索し、フィルターで指定した文字列を検索します。 この ID を省略した場合、フィルターはユーザーの既定のエイリアスに適用されます。 フィルターが指定されていない場合は、表示されているすべてのユーザーが返されます。 例:
  • GetInfo("users") すべてのユーザーを返します。
  • GetInfo("users", "%dmin%") 既定のエイリアスで文字列 "dmin" を持つすべてのユーザーを返します。
  • たとえば、という追加の属性を持つユーザーがいると "City".GetInfo("users", "%msterda%", "City") します。 この呼び出しは、City 属性に文字列 "m/da" を持つすべてのユーザーを返します。
UserCollection
ユーザアプリケーション UserID コレクション
Userpermissions UserID コレクション
userroles UserID コレクション
ユーザロール UserID コレクション
userstasks UserID コレクション
ユーザ単位 UserID コレクション
usertasks UserID コレクション
userunits UserID コレクション

戻り値の型

このセクションでは、GetInfo 関数の戻り値の型について説明します。

Name の戻り値の型 :
コレクション =<ITEMS>{<ITEM description="..." id="..." />}</ITEMS>
Object =<ITEM type="…" description="..." />
OrgUnit = <ITEM id="…" description="..." orgtype="..." parent="..."> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
アクセス許可 = <ITEM id="…" description="…" name="…" tokengroup="…" application="…" > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
ロール = <ITEMS> {<ITEM id="…" description="…" />} </ITEMS>
Role = <ITEM id="…" description="… " > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
タスク アクセス許可を確認する
ユーザー = <ITEMS> {<ITEM description="…" id="…" alias="…" />} </ITEMS>
User = <ITEM id="…" description="…" alias="…" firstname="…" lastname="…" uuid="…" language="…"> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>

サンプルスクリプト

企業には BHOLD サーバーがあり、新しい顧客を作成する自動スクリプトが必要です。 会社とその購入マネージャーに関する情報は、カスタマイズされた web ページに入力されます。 すべての顧客は、1つのユニットとしてモデルに表示されます。 購入マネージャーは、このユニットの上司としてのメンバーでもあります。 ロールが作成されます。これにより、所有者は新しい顧客の名前で購入する権利を得ることができます。

ただし、この顧客はアプリケーションに存在しません。 ASI FunctionDispatch に実装されている特別な関数によって、購入アプリケーションに新しい顧客アカウントが作成されます。 各顧客には顧客の種類があります。

使用可能な型は、FunctionDispatch 関数によっても表示できます。 AA は、新しい顧客の正しい種類を選択します。

購入権限を提示するロールとタスクを作成します。 実際の購入特権は、ASI によってファイルとして表示され /customers/customer id/purchase ます。 このファイルは、新しいタスクにリンクされている必要があります。

情報を収集する Active Server ページは次のようになります。

<%@ Language=VBScript %>
<% Option Explicit %>
<html>
<body>
<form action="MySubmit.asp" method=post>
<input type="hidden" name="OrgUnitID" 
     value="<% = Request("ID") %>">
Company <input type="text" name="Description"> <br>
Type <select name="OrgType">
<%Dim oOrgType
For Each oOrgType on bscript.getinfo("Orgtypes") %>
<option value="<% = oOrgType.OrgTypeID %>">
<% = oOrgType.Description %>
</option> <%
Next %>
</select>  <br>
Manager <input type="text" name=" manager"> <br>
Alias <input type=" text" name=" alias"> <br>
e-mail <input type=" text" name=" email"> <br>
<input type="submit">
</form>
</body>
</html>

カスタマイズされたページでは、適切な情報を要求するだけで、要求された情報を含む XML ドキュメントを作成する必要があります。 この例では、MySubmit ページによって XML ドキュメント内のデータが変換され、b1script に割り当てられ ます。Parameters オブジェクトを呼び出し、最後に関数を呼び出し ます。

次の入力スクリプトは、この例を示しています。

<customer>
<description>ACME inc.</description>
<orgtype>5<orgtype>
<name>John Doe</name>
<alias>jdoe</alias>
<email>jdoe@acme.com</email>
</customer>

この入力スクリプトには、BHOLD のコマンドが含まれていません。 これは、このスクリプトは BHOLD によって直接実行されないためです。これは、事前定義された関数の入力です。 この定義済みの関数は、BHOLD コマンドを使用して、このオブジェクトを XML ドキュメントに変換します。 このメカニズムにより、ユーザーは、ユーザーが実行を許可されていない関数 (ASI への setUser や関数のディスパッチなど) を含む BHOLD システムにスクリプトを送信できなくなります。

<?xml version="1.0" encoding="utf-8" ?> 
- <functions xmlns="http://tempuri.org/BscriptFunctions.xsd">

  <function name="roleadduser" roleid="" userid="" /> 
  <function name="roledeleteuser" roleid="" userid="" /> 
  </functions>

次の手順