Bagikan melalui


Referensi pengembang BHOLD untuk Microsoft Identity Manager 2016

Modul BHOLD-core dapat memproses perintah skrip. Ini dapat dilakukan dengan langsung menggunakan bscript.dll dalam proyek .NET. Juga Berinteraksi dengan layanan web antarmuka b1scriptservice.asmx.

Sebelum skrip dijalankan, semua informasi di dalam skrip harus dikumpulkan untuk menyusun skrip ini. Informasi ini dapat dikumpulkan dari sumber berikut:

  • Masukan Pengguna
  • Data BHOLD
  • Aplikasi
  • Lainnya

Data BHOLD dapat diambil dengan menggunakan fungsi GetInfo dari objek skrip. Ada daftar lengkap perintah yang dapat menyajikan semua data yang disimpan dalam database BHOLD. Namun, data yang disajikan tunduk pada izin tampilan pengguna yang masuk. Hasilnya adalah dalam bentuk dokumen XML yang dapat diurai.

Sumber lain untuk informasi dapat menjadi salah satu aplikasi yang dikendalikan oleh BHOLD. Snap-in aplikasi memiliki fungsi khusus, FunctionDispatch, yang dapat digunakan untuk menyajikan informasi khusus aplikasi. Ini disajikan sebagai dokumen XML juga.

Akhirnya, jika tidak ada cara lain, skrip dapat berisi perintah langsung ke aplikasi atau sistem lain. NoThenstallation perangkat lunak tambahan di server BHOLD dapat merusak keamanan seluruh sistem.

Semua informasi ini dimasukkan ke dalam satu dokumen XML dan ditetapkan ke objek skrip BHOLD. Objek menggabungkan dokumen ini dengan fungsi yang telah ditentukan sebelumnya. Fungsi yang telah ditentukan sebelumnya adalah dokumen XSL yang menerjemahkan dokumen input skrip ke dalam dokumen perintah BHOLD.

Pemrosesan Skrip BHOLD

Perintah dijalankan dengan urutan yang sama seperti dalam dokumen. Jika satu fungsi gagal, semua perintah yang dijalankan akan digulung balik.

Objek skrip

Bagian ini menjelaskan cara menggunakan objek skrip.

Mengambil informasi BHOLD

Fungsi GetInfo digunakan untuk mengambil informasi dari data yang tersedia dalam sistem otorisasi BHOLD. Fungsi ini memerlukan nama fungsi dan akhirnya satu atau beberapa parameter. Jika fungsi ini berhasil, objek atau koleksi BHOLD dikembalikan dalam bentuk dokumen XML.

Jika fungsi tidak berhasil, fungsi GetInfo mengembalikan string kosong atau kesalahan. Deskripsi kesalahan dan angka dapat digunakan untuk mendapatkan informasi lebih lanjut tentang kegagalan tersebut.

Fungsi GetInfo 'FunctionDispatch' dapat digunakan untuk mengambil informasi dari aplikasi yang dikendalikan oleh sistem BHOLD. Fungsi ini memerlukan tiga parameter: ID aplikasi, fungsi pengiriman seperti yang didefinisikan dalam ASI, dan dokumen XML dengan informasi pendukung untuk ASI. Jika fungsi berhasil, hasilnya tersedia dalam format XML dalam objek hasil.

Cuplikan di bawah ini adalah contoh C# sederhana dari GetInfo:

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

Demikian juga, objek BScript juga dapat diakses melalui layanan b1scriptserviceweb . Ini dilakukan dengan menambahkan referensi web ke proyek Anda menggunakan http://< server>:5151/BHOLD/Core/b1scriptservice.asmx di mana <server> adalah server dengan biner BHOLD diinstal. Untuk informasi selengkapnya, lihat Menambahkan referensi layanan web ke proyek Visual Studio.

Contoh berikut menunjukkan cara menggunakan fungsi GetInfo dari layanan web. Kode ini mengambil Unit Organisasi yang memiliki OrgID 1 lalu menampilkan nama Unit Organisasi tersebut di layar.

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);

        }
    }
}

Contoh VBScript berikut menggunakan layanan web melalui SOAP dan menggunakan GetInfo. Untuk contoh tambahan untuk SOAP 1.1, SOAP 1.2, dan HTTP POST, lihat bagian Referensi Terkelola BHOLD atau Anda dapat menavigasi ke layanan web langsung dari browser dan melihatnya di sana.

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

Menjalankan skrip

Fungsi ExecuteScript dari objek BScript dapat digunakan untuk menjalankan skrip. Fungsi ini memerlukan dua parameter. Parameter pertama adalah dokumen XML yang berisi informasi kustom yang akan digunakan oleh skrip. Parameter kedua adalah nama skrip yang telah ditentukan sebelumnya yang akan digunakan. Dalam direktori skrip BHOLD yang telah ditentukan sebelumnya, di sini harus berupa dokumen XSL dengan nama yang sama dengan fungsi, tetapi dengan ekstensi .xsl.

Jika fungsi tidak berhasil, fungsi ExecuteScript mengembalikan nilai False. Deskripsi kesalahan dan angka dapat digunakan untuk mengetahui apa yang salah. Berikut ini adalah contoh penggunaan metode web ExecuteXML. Metode ini memanggil 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

Fungsi GetInfo ini tersedia setelah fungsi executescript dijalankan. Fungsi mengembalikan string berformat XML yang berisi laporan eksekusi lengkap. Simpul Skrip berisi struktur XML skrip yang dijalankan.

Untuk setiap fungsi yang gagal selama eksekusi skrip, Fungsi Simpul ditambahkan dengan Nama simpul. ExecuteXML dan Kesalahan ditambahkan ke akhir dokumen semua ID yang dihasilkan ditambahkan.

Perhatikan bahwa hanya fungsi, yang berisi kesalahan yang ditambahkan. Jumlah kesalahan '0' berarti bahwa fungsi tidak dijalankan.

<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>

Parameter ID

Parameter ID mendapatkan perlakuan khusus. Nilai non-numerik digunakan sebagai nilai pencarian untuk menemukan entitas yang sesuai di penyimpanan data BHOLD. Saat nilai pencarian tidak unik, entitas pertama yang mematuhi nilai pencarian dikembalikan.

Untuk membedakan nilai pencarian numerik dari ID, dimungkinkan untuk menggunakan awalan. Ketika enam karakter pertama dari nilai pencarian sama dengan 'no_id:' maka karakter ini dilucuti sebelum nilai digunakan untuk pencarian. Karakter kartubebas SQL '%' dapat digunakan.

Bidang berikut digunakan dengan nilai pencarian:

Jenis ID Bidang pencarian
OrgUnitID Deskripsi
roleID Deskripsi
taskID Deskripsi
userID DefaultAlias

Akses dan izin skrip

Kode sisi server di Halaman Server Aktif digunakan untuk menjalankan skrip. Oleh karena itu, akses ke skrip berarti akses ke halaman-halaman ini. Sistem BHOLD menyimpan informasi tentang titik masuk halaman kustom. Informasi ini mencakup deskripsi halaman mulai dan fungsi (beberapa bahasa harus didukung).

Pengguna berwenang untuk dapat memasukkan halaman kustom dan menjalankan skrip. Setiap titik masuk disajikan sebagai tugas. Setiap pengguna yang mendapatkan tugas ini melalui peran atau unit dapat menjalankan fungsi yang sesuai.

Fungsi baru di menu menyajikan semua fungsi kustom yang dapat dijalankan oleh pengguna. Karena skrip dapat melakukan tindakan dalam sistem BHOLD di bawah identitas yang berbeda dari pengguna yang masuk. Dimungkinkan untuk memberikan izin untuk melakukan satu tindakan tertentu tanpa memiliki pengawasan atas objek apa pun. Misalnya, ini dapat berguna bagi karyawan yang hanya diizinkan untuk memasukkan pelanggan baru ke perusahaan. Skrip ini juga dapat digunakan untuk membuat halaman pendaftaran mandiri.

Skrip perintah

Skrip perintah berisi daftar fungsi yang dijalankan oleh sistem BHOLD. Daftar ditulis dalam dokumen XML yang sesuai dengan definisi berikut:

Skrip perintah <functions>functions</functions>
fungsi fungsi {function}
fungsi <function name="functionName" functionParameters [return] (/> | > parameterList </ function>)
functionName Nama fungsi yang valid seperti yang dijelaskan di bagian berikut.
functionParameters { functionParameter }
functionParameter parameterName = "parameterValue"
parameterName Nama parameter yang valid.
parameterValue @variable@ | Nilai
nilai Nilai parameter yang valid.
parameterList <> parameter {parameterItem} </parameters>
parameterItem <parameter name="parameterName"> parameterValue </parameter>
return return="@variable@"
variabel Nama variabel kustom.

XML memiliki terjemahan karakter khusus berikut:

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

Karakter XML ini dapat digunakan dalam pengidentifikasi, tetapi tidak disarankan.

Kode berikut menunjukkan contoh dokumen perintah yang valid dengan tiga fungsi:

<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>

Fungsi OrgUnitAdd menyimpan ID unit yang dibuat dalam variabel yang disebut UnitID. Variabel ini digunakan sebagai input untuk fungsi UserAdd. Nilai yang dikembalikan dari fungsi ini tidak digunakan. Bagian berikut menjelaskan semua fungsi yang tersedia, parameter yang diperlukan, dan nilai pengembaliannya.

Menjalankan fungsi

Bagian ini menjelaskan cara menggunakan fungsi eksekusi.

ABAAttributeRuleAdd

Buat aturan atribut baru pada jenis atribut tertentu. Aturan atribut hanya dapat ditautkan ke satu jenis atribut.

Aturan atribut yang ditentukan dapat ditautkan ke semua jenis atribut yang mungkin.

RuleType tidak dapat diubah dengan perintah "ABAattributeruletypeupdate". Mengharuskan deskripsi atribut dengan unik.

Argumen Jenis
Deskripsi Teks
RuleType Tentukan jenis aturan atribut. Bergantung pada jenis jenis aturan atribut argumen lain harus disertakan. Nilai jenis aturan berikut ini valid:
  • 0: Ekspresi reguler (tambahkan argumen "nilai").
  • 1: Nilai (tambahkan argumen "operator" dan "value").
  • 2: Daftar nilai.
  • 3: Rentang (tambahkan argumen "rangemin" dan "rangemax").
  • 4: Usia (tambahkan argumen "operator" dan "value").
InvertResult ["0"|"1"|"N"|"Y"]
AttributeTypeID Teks
Argumen opsional Jenis
Operator Teks
Catatan: Argumen ini wajib jika RuleType adalah 1 atau 4. Nilai yang mungkin adalah '=', '<', atau '>'. Tag XML perlu menggunakan ">" untuk '>' dan "<" untuk '<'.
RangeMin Telepon
Catatan: Argumen ini wajib jika RuleType adalah 3.
RangeMax Telepon
Catatan: Argumen ini wajib jika RuleType adalah 3.
Nilai Teks
Catatan: Argumen ini wajib jika RuleType adalah 0, 1, atau 4. Argumen harus berupa nilai numerik atau alfanumerik.
Jenis pengembalian AttributeRuleID Teks

applicationadd

Membuat aplikasi baru, mengembalikan ID aplikasi baru.

Argumen Jenis
deskripsi
komputer
modul
parameter
protokol
nama pengguna
kata sandi
svroleID (opsional) Jika argumen ini tidak ada, peran supervisor dari pengguna saat ini digunakan.
Applicationaliasformula (opsional) Rumus alias digunakan untuk membuat alias untuk pengguna saat ditetapkan ke izin aplikasi. Alias dibuat jika pengguna belum menjadi alias untuk aplikasi ini. Jika tidak ada nilai yang diberikan alias default pengguna digunakan sebagai alias untuk aplikasi. Rumus diformat sebagai [<<objecttype>>.<<nameofobjecttypeattribute>>(startindexoffset,length offset)]. Offset bersifat opsional. Hanya atribut Pengguna dan Aplikasi yang dapat digunakan. Teks bebas dapat digunakan. Karakter yang dipesan adalah kurung siku kiri ([) dan kurung siku kanan (]). Misalnya: [Application.bholdDescription]\[User.bholdDefAlias(1,5)].
Jenis Hasil ID aplikasi baru.

AttributeSetValue

Mengatur nilai jenis atribut yang tersambung ke jenis objek. Mengharuskan deskripsi jenis objek dan jenis atribut unik.

Argumen Jenis
ObjectTypeID Teks
ObjectID Teks
AttributeTypeID Teks
Nilai Teks
Tipe hasil Jenis

AttributeTypeAdd

Menyisipkan tipe atribut/tipe properti baru.

Argumen Jenis
DataTypeID Teks
Deskripsi (=Identitas) Teks
Catatan: Kata khusus tidak dapat digunakan, termasuk 'a', 'frm', 'id', 'usr', dan 'bhold'.
MaxLength Angka dalam [1,..,255]
ListOfValues (boolean) ["0"|"1"|"N"|"Y"]
DefaultValue Teks
Tipe hasil Jenis
AttributeTypeID Teks

AttributeTypeSetAdd

Menyisipkan set tipe atribut baru. Mengharuskan deskripsi set jenis atribut unik.

Argumen Jenis
Deskripsi (=Identitas) Teks
Tipe hasil Jenis
AttributeTypeSetID Teks

AttributeTypeSetAddAttributeType

Menyisipkan jenis atribut baru dalam set jenis atribut yang ada. Mengharuskan deskripsi set jenis atribut dan jenis atribut unik.

Argumen Jenis
AttributeTypeSetID Teks
AttributeTypeID Teks
Pesanan Telepon
LocationID Teks
Catatan: Lokasinya adalah "grup" atau "tunggal."
Wajib ["0"|"1"|"N"|"Y"]
Tipe hasil Jenis

ObjectTypeAddAttributeTypeSet

Menambahkan jenis atribut yang diatur ke jenis objek. Mengharuskan deskripsi jenis objek dan set jenis atribut unik. Jenis objek adalah: Sistem, OrgUnit, Pengguna, Tugas.

Argumen Jenis
ObjectTypeID Teks
AttributeTypeSetID Teks
Pesanan Telepon
Terlihat
  • 0: Set jenis atribut terlihat.
  • 2: Set jenis atribut terlihat saat tombol info lainnya dipilih.
  • 1: Set jenis atribut tidak terlihat.
Tipe hasil Jenis

OrgUnitaddd

Membuat unit organisasi baru, mengembalikan ID unit organisasi baru.

Argumen Jenis
deskripsi
orgtypeID
parentID
OrgUnitinheritedroles (opsional)
Tipe hasil Jenis
ID unit baru The parameter OrgUnitinheritedroles
memiliki nilai ya atau tidak.

OrgUnitaddsupervisor

Jadikan pengguna sebagai supervisor unit organisasi.

Argumen Jenis
svroleID UserID argumen juga dapat digunakan. Dalam hal ini, peran supervisor default dipilih. Peran supervisor default memiliki nama seperti __svrole diikuti dengan angka. UserID argumen dapat digunakan untuk kompatibilitas mundur.
OrgUnitID

OrgUnitadduser

Jadikan pengguna sebagai anggota unit organisasi.

Argumen Jenis
userID
OrgUnitID

OrgUnitdelete

Menghapus unit organisasi.

Argumen Jenis
OrgUnitID

OrgUnitdeleteuser

Menghapus pengguna sebagai anggota unit organisasi.

Argumen Jenis
userID
OrgUnitID

roleadd

Membuat peran baru.

Argumen Jenis
Deskripsi
svrole
svroleID (opsional) Jika argumen ini tidak ada, maka peran supervisor dari pengguna saat ini digunakan.
ContextAdaptable (opsional) ["0","1","N","Y"]
MaxPermissions (opsional) Bilangan bulat
MaxRoles (opsional) Bilangan bulat
MaxUsers (opsional) Bilangan bulat
Tipe hasil Jenis
ID peran baru

roleaddOrgUnit

Menetapkan peran ke unit organisasi.

Argumen Jenis
OrgUnitID roleID
inheritThisRole 'true' atau 'false', menunjukkan apakah peran diusulkan ke unit yang mendasar.

roleaddrole

Menetapkan peran sebagai subrole dari peran lain.

Argumen Jenis
roleID
subRoleID

roleaddsupervisor

Jadikan pengguna sebagai supervisor peran.

Argumen Jenis
svroleID UserID argumen juga dapat digunakan. Dalam hal ini, peran supervisor default dipilih. Peran supervisor default memiliki nama seperti __svrole diikuti dengan angka. UserID argumen dapat digunakan untuk kompatibilitas mundur.
roleID

roleadduser

Menetapkan peran kepada pengguna. Peran tidak dapat menjadi peran konteks yang dapat disesuaikan ketika tidak ada contextID yang diberikan.

Argumen Jenis
userID
roleID
durationType (opsional) Dapat berisi nilai 'gratis', 'jam', dan 'hari'.
durationLength (opsional) Diperlukan ketika durationType adalah 'jam' atau 'hari'. harus berisi nilai bilangan bulat untuk jumlah jam atau hari peran ditetapkan untuk pengguna.
mulai (opsional) Tanggal dan waktu saat peran ditetapkan. Ketika atribut ini dihilangkan, peran segera ditetapkan. Format tanggal adalah 'YYYY-MM-DDThh:nn:ss", di mana hanya tahun, bulan, dan hari yang diperlukan. misalnya "2004-12-11" dan "2004-11-28T08:00" adalah nilai yang valid.
akhir (opsional) Tanggal dan waktu ketika peran dicabut. Ketika durationType dan durationLength diberikan, nilai ini diabaikan. Format tanggal adalah 'YYYY-MM-DDThh:nn:ss", di mana hanya tahun, bulan, dan hari yang diperlukan. misalnya "2004-12-11" dan "2004-11-28T08:00" adalah nilai yang valid.
linkreason Diperlukan saat mulai, berakhir, atau durasi diberikan, jika tidak diabaikan.
contextId (opsional) ID unit organisasi, hanya diperlukan untuk peran konteks yang dapat beradaptasi.

roledelete

Menghapus peran.

Argumen Jenis
roleID

roledeleteuser

Menghapus penetapan peran kepada pengguna. Peran yang diwariskan oleh pengguna dicabut oleh perintah ini.

Argumen Jenis
userID
roleID
contextID (opsional)

roleproposeOrgUnit

Mengusulkan peran untuk menetapkannya kepada anggota dan sub-OrgUnits dari OrgUnit.

Argumen Jenis
OrgUnitID
roleID
durationType (opsional) Dapat berisi nilai 'bebas', 'jam', dan 'hari'.
durationLength Diperlukan ketika durationType adalah 'jam' atau 'hari', harus berisi nilai bilangan bulat untuk jumlah jam atau hari peran ditetapkan kepada pengguna.
durationFixed 'true' atau 'false', menunjukkan apakah penetapan peran ini kepada pengguna harus sama dengan durationLength.
warisanThisRole 'true' atau 'false', menunjukkan apakah peran diusulkan ke unit yang mendasar.

taskadd

Membuat tugas baru, mengembalikan ID tugas baru.

Argumen Jenis
applicationID
deskripsi Teks dengan maksimal 254 karakter.
nama tugas Teks dengan maksimal 254 karakter.
tokenGroupID
svroleID (opsional) Jika argumen ini tidak ada, maka peran supervisor dari pengguna saat ini digunakan.
contextAdaptable (opsional) ["0","1","N","Y"]
underconstruction (opsional) ["0","1","N","Y"]
auditaction (opsional)
  • 0: Tidak diketahui (default)
  • 1: ReportOnly
  • 2: AlertAppAll
  • 3: AlertAppObsolete
  • 4: AlertAppMissing
  • 5: EnforceAppAll
  • 6: EnforceAppObsolete
  • 7: EnforceAppMissing
  • 8: AlertEnforceAppAll
  • 9: AlertEnforceAppObsolete
  • 10: AlertEnforceAppMissing
  • 11: ImportAll
auditalertmail (opsional) Alamat email yang akan diberitahukan tentang izin ini dikirim oleh auditor. Jika argumen ini tidak ada, maka alamat email pemberitahuan auditor digunakan.
MaxRoles (opsional) Bilangan bulat
MaxUsers (opsional) Bilangan bulat
Tipe hasil ID tugas baru.

taskadditask

Menunjukkan bahwa dua tugas tidak kompatibel.

Argumen Jenis
taskID
taskID2

taskaddrole

Menetapkan tugas ke peran.

Argumen Jenis
roleID
taskID

taskaddsupervisor

Jadikan pengguna sebagai supervisor tugas.

Argumen Jenis
svroleID UserID argumen juga dapat digunakan. Dalam hal ini, peran supervisor default dipilih. Peran supervisor default memiliki nama seperti __svrole diikuti oleh angka. UserID argumen dapat digunakan untuk kompatibilitas mundur.
taskID

useradd

Membuat pengguna baru, mengembalikan ID pengguna baru.

Argumen Jenis
deskripsi
Alias
languageID
  • 1: Bahasa Inggris
  • 2: Bahasa Belanda
OrgUnitID
enddate (opsional) Format tanggal adalah 'YYYY-MM-DDThh:nn:ss", di mana hanya tahun, bulan, dan hari yang diperlukan. misalnya "2004-12-11" dan "2004-11-28T08:00" adalah nilai yang valid.
dinonaktifkan (opsional)
  • 0: Diaktifkan
  • 1: Dinonaktifkan
MaxPermissions (opsional) Bilangan bulat
MaxRoles (opsional) Bilangan bulat
Tipe hasil ID pengguna baru.

UserAddRole

Menambahkan peran pengguna.

Argumen Jenis

UserDeleteRole

Menghapus peran pengguna.

Argumen Jenis

Userupdate

Updates pengguna.

Argumen Jenis
UserID
deskripsi (opsional)
bahasa
  • 1: Bahasa Inggris
  • 2: Bahasa Belanda
userDisabled (opsional)
  • 0: Diaktifkan
  • 1: Dinonaktifkan
UserEndDate (opsional) Format tanggal adalah 'YYYY-MM-DDThh:nn:ss", di mana hanya tahun, bulan, dan hari yang diperlukan. misalnya "2004-12-11" dan "2004-11-28T08:00" adalah nilai yang valid.
firstName (opsional)
middleName (opsional)
lastName (opsional)
maxPermissions (opsional) Bilangan bulat
maxRoles (opsional) Bilangan bulat

Fungsi GetInfo

Kumpulan fungsi yang dijelaskan di bagian ini, dapat digunakan untuk mengambil informasi yang disimpan dalam sistem BHOLD. Setiap fungsi dapat dipanggil menggunakan fungsi GetInfo dari objek BScript. Beberapa objek memerlukan parameter. Data yang dikembalikan tunduk pada izin tampilan dan objek yang diawasi pengguna yang masuk.

Argumen GetInfo

Nama Deskripsi
aplikasi Mengembalikan daftar aplikasi.
attributetypes Mengembalikan daftar jenis atribut.
orgtypes Mengembalikan daftar jenis unit organisasi.
OrgUnits Mengembalikan daftar unit organisasi tanpa atribut unit organisasi.
OrgUnitproposedroles Mengembalikan daftar peran yang diusulkan yang ditautkan ke unit organisasi.
OrgUnitroles Mengembalikan daftar peran tertaut langsung dari unit organisasi yang diberikan
Objecttypeattributetypes
permissions
permissionusers
peran Mengembalikan daftar peran.
roletasks Mengembalikan daftar tugas dari peran yang diberikan.
tasks Mengembalikan semua tugas yang dikenal oleh BHOLD.
users Mengembalikan daftar pengguna.
usersroles Mengembalikan daftar peran supervisor tertaut dari pengguna tertentu.
userpermissions Mengembalikan daftar izin pengguna yang diberikan.

OrgUnit Info

Nama Parameter Tipe hasil
OrgUnit OrgUnitID OrgUnit
OrgUnitasiattributes OrgUnitID Koleksi
OrgUnits filter (opsional), proptypeid (opsional)
Mencari unit yang berisi string yang dijelaskan dalam filter dalam proptype yang dijelaskan dalam proptypeid. Jika ID ini dihilangkan, filter berlaku untuk deskripsi unit. Jika tidak ada filter yang disediakan, semua unit yang terlihat dikembalikan.
Koleksi
OrgUnitOrgUnits OrgUnitID Koleksi
OrgUnitparents OrgUnitID Koleksi
OrgUnitpropertyvalues OrgUnitID Koleksi
OrgUnitproptypes Koleksi
OrgUnitusers OrgUnitID Koleksi
OrgUnitproposedroles OrgUnitID Koleksi
OrgUnitroles OrgUnitID Koleksi
OrgUnitinheritedroles OrgUnitID Koleksi
OrgUnitsupervisors OrgUnitID Koleksi
OrgUnitinheritedsupervisors OrgUnitID Koleksi
OrgUnitsupervisorroles OrgUnitID Koleksi

Informasi peran

Nama Parameter Tipe hasil
peran roleID Object
peran filter (opsional) Koleksi
roleasiattributes roleID Koleksi
roleOrgUnits roleID Koleksi
roleparentroles roleID Koleksi
rolesubroles roleID Koleksi
rolesupervisors roleID Koleksi
rolesupervisorroles roleID Koleksi
roletasks roleID Koleksi
roleusers roleID Koleksi
rolesupervisorroles roleID Koleksi
proposedroleOrgUnits roleID Koleksi
proposedroleusers roleID Koleksi

Izin - Informasi tugas

Nama Parameter Tipe hasil
izin TaskID Izin
permissions filter (opsional) Koleksi
permissionasiattributes TaskID Koleksi
permissionattachments TaskID Koleksi
permissionattributetypes - Koleksi
permissionparams TaskID Koleksi
permissionroles TaskID Koleksi
permissionsupervisors TaskID Koleksi
permissionsupervisorroles TaskID Koleksi
permissionusers TaskID Koleksi
tugas TaskID Tugas
tasks filter (opsional) Koleksi
taskattachments TaskID Koleksi
taskparams TaskID Koleksi
taskroles TaskID Koleksi
tasksupervisors TaskID Koleksi
tasksupervisorroles TaskID Koleksi
taskusers TaskID Koleksi

Informasi pengguna

Nama Parameter Tipe hasil
pengguna UserID Pengguna
users filter (opsional), attributetypeid (opsional)
Mencari pengguna yang berisi jenis atribut yang ditentukan oleh attributetypeid string yang ditentukan oleh filter. Jika ID ini dihilangkan, filter berlaku untuk alias default pengguna. Jika tidak ada filter yang disediakan, semua pengguna yang terlihat akan dikembalikan. Contohnya:
  • GetInfo("users") mengembalikan semua pengguna.
  • GetInfo("users", "%dmin%") mengembalikan semua pengguna dengan string "dmin" di alias default.
  • Misalkan pengguna memiliki atribut tambahan yang disebut "City".GetInfo("users", "%msterda%", "City"). Panggilan ini mengembalikan semua pengguna yang memiliki string "msterda" di atribut City.
UserCollection
aplikasi pengguna UserID Koleksi
Userpermissions UserID Koleksi
userroles UserID Koleksi
usersroles UserID Koleksi
tugas pengguna UserID Koleksi
usersunits UserID Koleksi
usertasks UserID Koleksi
userunits UserID Koleksi

Jenis yang ditampilkan

Di bagian ini, jenis pengembalian fungsi GetInfo dijelaskan.

Nama Tipe hasil
Koleksi =<ITEMS>{<ITEM description="..." id="..." />}</ITEMS>
Object =<ITEM type="…" description="..." />
OrgUnit = <ITEM id="…" description="..." orgtype="..." parent="..."> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
Izin = <ITEM id="…" description="…" name="…" tokengroup="…" application="…" > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
Peran = <ITEMS> {<ITEM id="…" description="…" />} </ITEMS>
Peran = <ITEM id="…" description="… " > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
Tugas Lihat Izin
Pengguna = <ITEMS> {<ITEM description="…" id="…" alias="…" />} </ITEMS>
Pengguna = <ITEM id="…" description="…" alias="…" firstname="…" lastname="…" uuid="…" language="…"> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>

Sampel Skrip

Perusahaan memiliki server BHOLD dan menginginkan skrip otomatis yang membuat pelanggan baru. Informasi tentang perusahaan dan manajer pembeliannya masuk di halaman web yang disesuaikan. Setiap pelanggan disajikan dalam model sebagai unit di bawah pelanggan unit. Manajer pembelian juga merupakan anggota sebagai supervisor unit ini. Peran dibuat yang memberi pemilik hak untuk membeli atas nama pelanggan baru.

Namun, pelanggan ini tidak ada dalam aplikasi. Ada fungsi khusus yang diterapkan dalam ASI FunctionDispatch yang membuat akun pelanggan baru dalam aplikasi pembelian. Setiap pelanggan memiliki jenis pelanggan.

Jenis yang mungkin juga dapat disajikan oleh fungsi FunctionDispatch. AA memilih jenis yang benar untuk pelanggan baru.

Buat peran dan tugas untuk menyajikan hak istimewa pembelian. Hak istimewa pembelian nyata disajikan oleh ASI sebagai file /customers/customer id/purchase. File ini harus ditautkan ke tugas baru.

Halaman Server Aktif yang mengumpulkan informasi terlihat seperti ini:

<%@ 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>

Semua halaman yang dikustomisasi harus dilakukan adalah meminta informasi yang tepat dan membuat dokumen XML dengan informasi yang diminta. Dalam contoh ini, halaman MySubmit mengubah data dalam dokumen XML, menetapkannya ke b1script. Objek parameter dan akhirnya memanggil b1script.ExecuteScript("MyScript") fungsi .

Skrip input berikut menunjukkan contoh ini:

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

Skrip input ini tidak berisi perintah apa pun untuk BHOLD. Ini karena skrip ini tidak dijalankan langsung oleh BHOLD; alih-alih itu, ini adalah input untuk fungsi yang telah ditentukan sebelumnya. Fungsi yang telah ditentukan sebelumnya ini menerjemahkan objek ini ke dokumen XML dengan perintah BHOLD. Mekanisme ini menahan pengguna mengirim skrip ke sistem BHOLD yang berisi fungsi yang tidak diizinkan untuk dijalankan pengguna, seperti setUser dan fungsi dikirim ke ASI.

<?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>

Langkah berikutnya